繁体   English   中英

对Pandas Dataframe中的列进行分组

[英]Grouping columns in a Pandas Dataframe

如果有人可以解决我遇到的熊猫数据框问题,我将不胜感激。

我正在尝试按列对熊猫数据框进行分组,但是不确定如何进行。 我有一个重复的列名(A和B)的数据框,并希望将它们分组以返回A和B的最大值

列数据框重复

index      | A | A | A | B | B |
--------------------------------
2015-01-01 |   | 1 | 7 | 1 |   |
--------------------------------
2015-01-02 | 3 |   |   |   | 5 |

处理后的数据框

index      | A | B |
--------------------
2015-01-01 | 7 | 1 |
---------------------
2015-01-02 | 3 | 5 |

unique_cols = [A,B]   
df.groupby(by = cols, axis = 1).max()

这不起作用,因为我收到有关石斑鱼不是一维的错误消息。 我也尝试过转置数据框并按行分组。 但是我收到IndexError消息( 索引0超出了轴0的范围,大小为0

题:

如何将具有重复列的数据框分组以从该组中返回最大的列?

我认为您首先需要按子集过滤列,然后按level=0 axis=1axis=1所有列值进行groupby

cols = ['A','B']   
df = df[cols].groupby(level = 0, axis = 1).max()
print (df)
              A    B
index               
2015-01-01  7.0  1.0
2015-01-02  3.0  5.0

最后在必要时强制转换为int

df = df[cols].groupby(level = 0, axis = 1).max().astype(int)
print (df)
            A  B
index           
2015-01-01  7  1
2015-01-02  3  5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM