xia*_*hir 3 python join duplicates pandas
我是熊猫的新手。我的 df 看起来像这样:
A A A B B B
a NaN NaN 2 NaN NaN 5
b NaN 1 NaN 9 NaN NaN
c 3 NaN NaN 7 NaN
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到
A B
a 2 5
b 1 9
c 3 7
Run Code Online (Sandbox Code Playgroud)
看起来合并、连接是针对多个数据帧的。我也试过
df.groupby(by=[A,B], axis=1)
Run Code Online (Sandbox Code Playgroud)
但得到
ValueError: Grouper and axis must be same length
Run Code Online (Sandbox Code Playgroud)
我相信您需要使用聚合函数指定第一级,例如sum
, mean
, first
, last
...:
import pandas as pd
df = df.groupby(level=0, axis=1).sum()
print (df)
A B
a 2.0 5.0
b 1.0 9.0
c 3.0 7.0
Run Code Online (Sandbox Code Playgroud)
如果需要按名称过滤列,请使用子集:
df = df[['A','B']].groupby(level=0, axis=1).sum()
Run Code Online (Sandbox Code Playgroud)
如果使用索引值:
df1 = df.T
print (df1)
a b c
A NaN NaN 3.0
A NaN 1.0 NaN
A 2.0 NaN NaN
B NaN 9.0 7.0
B NaN NaN NaN
B 5.0 NaN NaN
df = df1.groupby(level=0).sum()
#default parameter axis=0 should be omit above
#df = df1.groupby(level=0, axis=0).sum()
print (df)
a b c
A 2.0 1.0 3.0
B 5.0 9.0 7.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5132 次 |
最近记录: |