ale*_*lex 2 group-by list pandas
我有:
df=pd.DataFrame({'a':[1,1,2],'b':[[1,2,3],[2,5],[3]],'c':['f','df','ere']})
df
a b c
0 1 [1, 2, 3] f
1 1 [2, 5] df
2 2 [3] ere
Run Code Online (Sandbox Code Playgroud)
我想连接并在每个元素上创建一个列表:
pd.DataFrame({'a':[1,2],'b':[[1,2,3,2,5],[3]],'c':[['f', 'df'],['ere']]})
a b c
0 1 [1, 2, 3, 2, 5] [f, df]
1 2 [3] [ere]
Run Code Online (Sandbox Code Playgroud)
我试过:
df.groupby('a').agg({'b': 'sum', 'c': lambda x: list(''.join(x))})
a b c
1 [1, 2, 3, 2, 5] [f, d, f]
2 [3] [e, r, e]
Run Code Online (Sandbox Code Playgroud)
但这并不完全正确。
有什么建议吗?
你几乎做对了:
df.groupby('a', as_index=False).agg({
'b': 'sum',
'c': list # no join needed
})
Run Code Online (Sandbox Code Playgroud)
输出:
a b c
0 1 [1, 2, 3, 2, 5] [f, df]
1 2 [3] [ere]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21 次 |
| 最近记录: |