You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用另一DataFrame列创建新DataFrame时出现内存错误

解决从DataFrame提取指定列时的报错问题

看起来你在尝试从现有DataFrame df 中提取Time和Calling Minutes两列创建新的DataFrame时遇到了问题。先把你的报错信息完整整理如下:

Traceback (most recent call last):
File "C:\Official Works\Data Health Check\Scripts\3G\3G Final KPI with P.py", line 11, in
df1=df[['Time','Calling Minutes']]
File "C:\Python35\lib\site-packages\pandas\core\frame.py", line 2133, in getitem
return self._getitem_array(key)
File "C:\Python35\lib\site-packages\pandas\core\frame.py", ...

这种报错大概率是列名不匹配或目标列不存在导致的,下面是几种实用的排查和解决方法:

1. 确认列名的准确性

pandas对列名的拼写、大小写和空格极度敏感,哪怕一个空格或者大小写差异都会触发索引失败。你可以先打印出df的所有列名,确认目标列是否存在:

# 打印所有列名的列表
print(df.columns.tolist())

如果发现列名和你写的不一致(比如Calling Minutes实际是Calling_Minutes,或者Time是小写的time),直接修改代码中的列名即可。

2. 快速检查目标列是否存在

如果不确定具体哪些列存在,可以用简单的成员判断验证:

# 分别检查两个列是否在df的列集合中
print("Time是否存在:", 'Time' in df.columns)
print("Calling Minutes是否存在:", 'Calling Minutes' in df.columns)

如果某一列返回False,说明该列不在原DataFrame中,你需要检查数据加载的代码,确认是否遗漏了该列,或者数据来源本身就没有这列数据。

3. 处理列名的隐藏空格或特殊字符

有时候列名可能包含隐藏的前后空格,或者加载数据时引入了特殊字符,导致看起来名字正确但实际不匹配。你可以先清理列名:

# 去除所有列名前后的空格
df.columns = df.columns.str.strip()
# 再尝试提取列
df1 = df[['Time','Calling Minutes']]

4. 确认df是标准的pandas DataFrame

如果df不是DataFrame(比如是Series或者其他数据结构),也会导致这种索引方式失效。先检查df的类型:

print(type(df))

如果输出不是<class 'pandas.core.frame.DataFrame'>,需要先将其转换为DataFrame,比如:

# 如果是Series,转换为DataFrame
df = df.to_frame()

按照上面的步骤排查,应该能快速定位并解决你的问题。

内容的提问来源于stack exchange,提问作者Suman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:15:03