Kat*_*ara 1 pandas pandas-groupby
我有数据框以及以下列.
[A,B,C,d,E,F,G ...]
我想对此数据帧使用groupby方法,指定每列应属于哪个组,如下所示.
group1 = [A,C,D,G ...]
group2 = [B,E,F ...]
我可以找到一些解释如何使用groupby和条件的页面.但找不到适合这个问题的答案.
谁能告诉我如何实现这个逻辑?
我相信需要:
df = pd.DataFrame({'A':[4,5,4,5,5,4],
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':[4,5,4,5,5,4],
'G':[4,5,4,5,5,4]})
print (df)
A B C D E F G
0 4 4 7 1 5 4 4
1 5 5 8 3 3 5 5
2 4 4 9 5 6 4 4
3 5 5 4 7 9 5 5
4 5 5 2 1 2 5 5
5 4 4 3 0 4 4 4
Run Code Online (Sandbox Code Playgroud)
在lists中创建组的字典,然后使用扁平化的dicts理解中的值交换键:
d = {'g1':['A','C','D','G'], 'g2':['B','E','F']}
d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
print (d1)
{'A': 'g1', 'C': 'g1', 'D': 'g1', 'G': 'g1', 'B': 'g2', 'E': 'g2', 'F': 'g2'}
df = df.groupby(d1, axis=1).sum()
print (df)
g1 g2
0 16 13
1 21 13
2 22 14
3 21 19
4 13 12
5 11 12
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |