简体   繁体   English

Groupby和concat其他列数据

[英]Groupby and concat other column data in pandas

I have one Dataframe. 我有一个数据框。

Dataframe1: Dataframe1:

desc  id  result
A      1    Yes
A      2    No
A      3    Yes
A      4    No
B      1    No
B      2    Yes
C      1    Yes


Output: 输出:
Dataframe2: Dataframe2:

id    result
1     A_Yes, B_No, C_Yes
2     A_No, B_Yes
3     A_Yes
4     A_No
5


It is simply concat desc and result and then group by. 它只是concat desc和结果,然后分组。
How should i do it? 我该怎么办?

We using pandas.Series.groupby 我们使用pandas.Series.groupby

(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

You can concat the desc and result column and after that use pandas.groupby.DataFrame.agg 您可以连接descresult列,然后使用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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM