答案 0 :(得分:1)
print df.replace('null', '').groupby('id').sum().replace('', 'null')
A B C
id
1 a r s
2 q d null
3 w b null
如果值null
的类型不是string
,请使用fillna
:
print df.fillna('').groupby('id').sum().replace('', 'null')
A B C
id
1 a r s
2 q d null
3 w b null
答案 1 :(得分:1)
设置
import pandas as pd
data = [
[1, 'a', None, None],
[1, None, 'r', None],
[1, None, None, 's'],
[2, None, 'd', None],
[2, 'q', None, None],
[3, None, 'b', None],
[3, 'w', None, None]
]
df = pd.DataFrame(data, columns=['id', 'A', 'B', 'C'])
df看起来像
id A B C
0 1 a None None
1 1 None r None
2 1 None None s
3 2 None d None
4 2 q None None
5 3 None b None
6 3 w None None
解决方案
df.set_index('id').stack().unstack()
看起来像
A B C
id
1 a r s
2 q d None
3 w b None