如何在共享相同指定索引条目的熊猫数据框中合并行?

时间:2018-07-19 23:16:57

标签: python python-3.x pandas dataframe

我有一个包含两列的数据框,其中包含字符串条目,例如:

Col1 Col2
E1     K1
E2     K2
E3     K3
...

我想在Col2上创建索引,但是那里的条目不是唯一的。所以我想在Col2中合并共享条目的所有行。假设K2,K3相同。然后合并之后,我想要的是将Col1值序列化为仅形成一行的列表,即:

Col1 Col2
E1     K1
[E2, E3]     K2
...

实现这一目标的最干净的方法是什么?

3 个答案:

答案 0 :(得分:1)

首先将K3更改为K2,然后按column2分组并对其进行汇总

 df[df=='K3']='K2'
 df.groupby('Col2').agg(list)
          Col1
Col2          
K1        [E1]
K2    [E2, E3]

答案 1 :(得分:1)

您可以将mappergroupby一起使用

df.set_index('Col2').groupby(by={'K1':'K1','K2':'K2','K3':'K2'},axis=0).Col1.apply(list)
Out[116]: 
K1        [E1]
K2    [E2, E3]
Name: Col1, dtype: object

答案 2 :(得分:0)

由于您不了解先验对象是什么骗子,您可以这样做:

df.groupby('Col2').agg(lambda s: list(s))

由于某种原因.agg(list)对我不起作用...

相关问题