Pandas 忽略警告错误:值不在索引中
是否有方法抑制索引中没有“[x]”的错误?例如,如果我有一个列为abc的数据帧,我调用df[['a','B','C','D']],是否可以让它只返回a,B,C,如果它不存在则忽略D 示例代码Pandas 忽略警告错误:值不在索引中,pandas,warnings,Pandas,Warnings,是否有方法抑制索引中没有“[x]”的错误?例如,如果我有一个列为abc的数据帧,我调用df[['a','B','C','D']],是否可以让它只返回a,B,C,如果它不存在则忽略D 示例代码 将熊猫作为pd导入 将numpy作为np导入 a=np.矩阵('[1,4,5];[1,2,2];[9,7,5]')) df=pd.DataFrame(a,列=['a','B','C']) df[['A','B','C','D']] 这是错误消息 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“
将熊猫作为pd导入
将numpy作为np导入
a=np.矩阵('[1,4,5];[1,2,2];[9,7,5]'))
df=pd.DataFrame(a,列=['a','B','C'])
df[['A','B','C','D']]
这是错误消息
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3/dist packages/pandas/core/frame.py”,第2133行,在__
返回self.\u getitem\u数组(键)
文件“/usr/lib/python3/dist packages/pandas/core/frame.py”,第2177行,在_getitem_数组中
索引器=self.loc.\u转换为索引器(键,轴=1)
文件“/usr/lib/python3/dist packages/pandas/core/index.py”,第1269行,在“convert\u to\u indexer”中
.format(mask=objarr[mask]))
KeyError:“['D']不在索引中”
选择列时,使用列交叉点与所需列表。您可以在所有列存在时获取它们,并且只获取列数较少且没有任何错误的子集
l = ['A', 'B', 'C', 'D']
df[df.columns.intersection(l)]
A B C
0 1 4 5
1 1 2 2
2 9 7 5
或者,如果您确实想要
D
,您可以在轴=1上:
l=['A','B','C','D']
df.reindex(l,axis=1)
因为D
不在列中,print(df.columns)
是['A','B','C',
A B C D
0 1 4 5 NaN
1 1 2 2 NaN
2 9 7 5 NaN