我的问题类似于如何检查 Pandas 中是否存在列 https://stackoverflow.com/questions/24870306/how-to-check-if-a-column-exists-in-pandas但对于多索引列的情况。
我正在尝试使用源自另一个文件的列名称来处理多索引列数据框中的值 - 因此需要检查该列是否存在。一个代表性的例子如下:
import pandas as pd
from numpy.random import randint,randn
df = pd.DataFrame({ 'A': [randint(0,3) for p in range(0,12)],'B': [0.1* randint(0,3) for p in range(0,12)],
'C': [0.1*randint(0,3) for p in range(0,12)],'D': randn(12),
})
df1 = df.groupby(['A','B','C']).D.sum().unstack(-1)
df1 = df1.T
df1
A 0 1 2
B 0.0 0.2 0.0 0.1 0.2 0.0 0.1
C
0.0 NaN NaN NaN 0.845316 NaN 0.555513 NaN
0.1 NaN 0.139371 NaN NaN NaN NaN -0.260868
0.2 5.002509 NaN 0.637353 0.438863 0.943098 NaN NaN
df1[1][0.1]
C
0.0 0.845316
0.1 NaN
0.2 0.438863
访问df1[0][0.1]
上面的例子会导致关键错误。如何检查多索引列是否存在,以便在处理过程中跳过不存在的列?
Thanks!
您可以将多索引视为元组数组,因此可以像这样访问:
df1[(0, 0.1)]
并测试如下:
(0, 0.1) in df1.columns:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)