python有条件地将几行合并

时间:2018-06-28 07:29:41

标签: python pandas dataframe group-by

我面临着将几行合并为一个问题。关键点应该是数据框架。

例如,我有下表:

    ID  Var     Answer
1   124 Q_S_1   Male
2   125 Q_S_1   Male
4   123 Q_S_1   Female
7   126 Q_S_1   Female
8   123 Q_S_2   Kids < 3 years
10  125 Q_S_2   Kids < 3 years
13  124 Q_S_2   Kids > 3 years
15  126 Q_S_2   Kids > 3 years
16  123 Q_S_3   Cat
19  126 Q_S_3   Cat
20  123 Q_S_3   Dog
22  125 Q_S_3   Dog
25  124 Q_S_3   Frog
26  125 Q_S_3   Frog

然后我使用分组

data_main_open_melt_merge_short.groupby(['ID', 'Var'])['Answer'].apply(', '.join)

并获取对象类型数据

ID   Var              Answer
123  Q_S_1            Female
     Q_S_2    Kids < 3 years
     Q_S_3          Cat, Dog
124  Q_S_1              Male
     Q_S_2    Kids > 3 years
     Q_S_3              Frog
125  Q_S_1              Male
     Q_S_2    Kids < 3 years
     Q_S_3         Dog, Frog
126  Q_S_1            Female
     Q_S_2    Kids > 3 years
     Q_S_3               Cat

我想要的是以下数据框:

ID   Var              Answer
123  Q_S_1            Female
123  Q_S_2    Kids < 3 years
123  Q_S_3          Cat, Dog
124  Q_S_1              Male
124  Q_S_2    Kids > 3 years
124  Q_S_3              Frog
125  Q_S_1              Male
125  Q_S_2    Kids < 3 years
125  Q_S_3         Dog, Frog
126  Q_S_1            Female
126  Q_S_2    Kids > 3 years
126  Q_S_3               Cat

提前感谢您的帮助!

亲切的问候, D

0 个答案:

没有答案