gpt4 book ai didi

python - 在 Pandas 中使用 groupby 时恢复分层列索引

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:32 24 4
gpt4 key购买 nike

我在 pandas 中使用 groupby 来计算 pandas 中数据的一些聚合统计信息,其中数据框中的列是使用分层索引组织的。对于计算的统计数据,我想最后回到表格形式,其中组被重新转换为具有组值的列,例如喜欢:

index = pd.MultiIndex.from_tuples([('A', 'a'), ('B', 'b')])
df = pd.DataFrame(np.random.randn(8,2), columns=index)

这导致例如这个数据框

          A         B
a b
0 0.511157 0.334748
1 0.031113 -0.477456
2 0.288080 -0.258238
3 0.138467 -0.955547
4 -0.087873 0.017494
5 -0.667393 1.190039
6 -0.068245 -1.282864
7 -0.996982 0.589667

现在我使用 groupby 计算统计数据并重置索引以重新创建平面数据框:

df.groupby([('A','a')]).mean().reset_index()
(A, a) B
b
0 -0.996982 0.589667
1 -0.667393 1.190039
2 -0.087873 0.017494
3 -0.068245 -1.282864
4 0.031113 -0.477456
5 0.138467 -0.955547
6 0.288080 -0.258238
7 0.511157 0.334748

如何实现 ('A', 'a') 再次成为多索引的一部分,希望以自动方式实现?或者另有说明:有没有办法在 groupby 操作期间保留分层列结构。

最佳答案

对于我的工作,将参数 as_index=False 添加到 groupby :

print df.groupby([('A','a')], as_index=False).mean()
A B
a b
0 -0.765088 -0.556601
1 -0.628040 2.074559
2 -0.516396 -2.028387
3 -0.152027 0.389853
4 0.450218 1.474989
5 0.718040 -0.882018
6 1.932556 -0.977316
7 2.028468 -0.875167

关于python - 在 Pandas 中使用 groupby 时恢复分层列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210104/

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