Pandas 基于另一列中的组,在Dataframe中使用分隔符分隔一列值
我有一个如下所示的数据框:Pandas 基于另一列中的组,在Dataframe中使用分隔符分隔一列值,pandas,dictionary,group-by,subset,Pandas,Dictionary,Group By,Subset,我有一个如下所示的数据框: # df colA colB rqqrs vqtr MNO vqtr japl vqtr nsam2 raqm many 3tyua 3juaik7 3tyua janit yua7us 我希望从这个数据框中得到的是把一排可乐拼凑在一起
# df
colA colB
rqqrs vqtr
MNO vqtr
japl vqtr
nsam2 raqm
many 3tyua
3juaik7 3tyua
janit yua7us
我希望从这个数据框中得到的是把一排可乐拼凑在一起
在ColB中具有相同的值。例如,在上表中,前三行
应该作为单行使用,因为这些行的ColB的所有值都相同
因此,输出应该如下所示(分隔符可以是分号或:&等,在下面的示例中我使用了:&)
老实说,对于如何实现这一点,我没有太多的想法。我尝试按ColB对旧数据帧进行分组,然后使用ColB唯一项作为字典中的键,并尝试将ColA项放入值中
然而,这些似乎都不起作用。如果我能得到一些帮助,那将非常有帮助。我们可以通过
加入来做agg
df.groupby('colB').colA.agg(' ;&'.join)
colB
3tyua many ;&3juaik7
raqm nsam2
vqtr rqqrs ;&MNO ;&japl
yua7us janit
Name: colA, dtype: object
我们可以使用join
df.groupby('colB').colA.agg(' ;&'.join)
colB
3tyua many ;&3juaik7
raqm nsam2
vqtr rqqrs ;&MNO ;&japl
yua7us janit
Name: colA, dtype: object
或者,您可以将“groupby”与“apply(list)”一起使用。“.unique()”确保元素只列出一次:
df_grouped=df.groupby('colB')['colA'].unique().apply(list)
或者,您可以将“groupby”与“apply(list)”一起使用。“.unique()”确保元素只列出一次:
df_grouped=df.groupby('colB')['colA'].unique().apply(list)
非常感谢。工作得很有魅力!非常感谢。工作得很有魅力!