从Pandas数据框列中获取值,并使用它们作为列表创建一个新列

时间:2018-07-06 01:38:42

标签: python pandas dataframe

我有一个看起来像这样的数据框:

Record Field11 ID LesionNumber Diagnosis1
1 False 1000 1 22
1 False 1000 2 88
1 False 1000 3 22
1 False 1000 4 24

所有ID均相同。而且,这种结构会重复用于许多不同的ID。

使用具有相同ID的所有行,我想创建一个新的数据框,如下所示:

Record ID LesionNumber Diagnosis1
1 1000 1, 2, 3, 4 22, 88, 22, 24

我希望LesionNumberDiagnosis1出现在有序列表中。

我是Pandas和Dataframe的新手,所以我的术语可能不对。这可能吗?

1 个答案:

答案 0 :(得分:1)

使用agg

df.groupby(['Record','Field11','ID']).agg(lambda x : ','.join(x.astype(str))).reset_index()
Out[634]: 
   Record  Field11    ID LesionNumber   Diagnosis1
0       1    False  1000      1,2,3,4  22,88,22,24