Groupby 并连接 pandas 中的其他列数据
Groupby and concat other column data in pandas
我有一个Dataframe。
数据框 1:
desc id result
A 1 Yes
A 2 No
A 3 Yes
A 4 No
B 1 No
B 2 Yes
C 1 Yes
输出:
数据框 2:
id result
1 A_Yes, B_No, C_Yes
2 A_No, B_Yes
3 A_Yes
4 A_No
5
就是concat desc和result然后group by。
我应该怎么做?
(df.desc+'_'+df.result).groupby(df['id']).apply(','.join).reset_index(name='result')
Out[207]:
id result
0 1 A_Yes,B_No,C_Yes
1 2 A_No,B_Yes
2 3 A_Yes
3 4 A_No
您可以连接 desc
和 result
列,然后使用 pandas.groupby.DataFrame.agg
df['result'] = df['desc'] + '_' + df['result']
df = df.groupby('id').agg({'result': ', '.join})
print(df)
result
id
1 A_Yes, B_No, C_Yes
2 A_No, B_Yes
3 A_Yes
4 A_No
我有一个Dataframe。
数据框 1:
desc id result
A 1 Yes
A 2 No
A 3 Yes
A 4 No
B 1 No
B 2 Yes
C 1 Yes
输出:
数据框 2:
id result
1 A_Yes, B_No, C_Yes
2 A_No, B_Yes
3 A_Yes
4 A_No
5
就是concat desc和result然后group by。
我应该怎么做?
(df.desc+'_'+df.result).groupby(df['id']).apply(','.join).reset_index(name='result')
Out[207]:
id result
0 1 A_Yes,B_No,C_Yes
1 2 A_No,B_Yes
2 3 A_Yes
3 4 A_No
您可以连接 desc
和 result
列,然后使用 pandas.groupby.DataFrame.agg
df['result'] = df['desc'] + '_' + df['result']
df = df.groupby('id').agg({'result': ', '.join})
print(df)
result
id
1 A_Yes, B_No, C_Yes
2 A_No, B_Yes
3 A_Yes
4 A_No