如果有人能帮我解决我遇到的大熊猫数据帧问题,我将不胜感激。
我正在尝试按列对pandas数据框进行分组,但我不确定如何继续。我有一个包含重复列名称的数据框(A' s和B' s),并希望对这些列进行分组以返回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()
这不起作用,因为我收到关于Grouper的错误消息而不是1维。我也试过转换数据帧并按行分组。但是我收到一条IndexError消息(索引0超出了0号轴<0>的<0>)
问题:
如何将具有重复列的数据框分组以从组中返回最大值?
答案 0 :(得分:4)
我认为您需要按子集首先过滤列,然后groupby
按level=0
axis=1
列出所有列值:
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