gpt4 book ai didi

python - Pandas :摆脱多重索引

转载 作者:太空狗 更新时间:2023-10-29 22:12:26 26 4
gpt4 key购买 nike

在对数据帧进行分组和计数后,我试图像这样删除多索引:

df = df[['CID','FE', 'FID']].groupby(by=['CID','FE']).count()
.unstack().reset_index()

打印列 (df.colums) 表明它仍然是一个 MultiIndex

MultiIndex(levels=[['FID', 'CID'], [...]]

我无法通过 df['CID'] 访问列 CID

最佳答案

我认为如果有必要,您需要将 MultiIndex 转换为 Index:

df.columns = df.columns.map(''.join)

或者如果需要删除级别使用droplevel :

df.columns = df.columns.droplevel(0)

如果需要访问值可以使用 xs :

df = df.xs('CID', axis=1, level=1)

您还可以检查:

What is the difference between size and count in pandas?

编辑:

要删除 MultiIndex 是 ['FID'] 选择的另一种解决方案。

df = df.groupby(by=['CID','FE'])['FID'].count().unstack().reset_index()

示例(还添加了 rename_axis 以获得更好的输出):

df = pd.DataFrame({'CID':[2,2,3],
'FE':[5,5,6],
'FID':[1,7,9]})

print (df)
CID FE FID
0 2 5 1
1 2 5 7
2 3 6 9

df = df.groupby(by=['CID','FE'])['FID']
.count()
.unstack()
.reset_index()
.rename_axis(None, axis=1)

print (df)
CID 5 6
0 2 2.0 NaN
1 3 NaN 1.0

关于python - Pandas :摆脱多重索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com