如何将DataFrame的一列分组,同时在另一列中追加相应的行并乘以该列中自身的数量?

时间:2019-12-11 14:45:27

标签: python-3.x pandas dataframe group-by grouping

假设我们有2列DataFrame,col1具有唯一编号,而col2具有重复编号,如下所示。

我想成为这样:

enter image description here

1 个答案:

答案 0 :(得分:2)

尝试:

# Setup 
df = pd.DataFrame({'col1':{0:89,1:53,2:97,3:106,4:115,5:56,6:55,7:105,8:71,9:70,10:110},'col2':{0:205,1:205,2:205,3:203,4:203,5:203,6:202,7:201,8:200,9:200,10:198}})

df_new = df.groupby('col2', sort=False)['col1'].apply(list).reset_index()
df_new['col2'] = df_new['col1'].str.len().astype(str) + '*' + df_new.pop('col2').astype(str)
print(df_new)

[出]

             col1   col2
0    [89, 53, 97]  3*205
1  [106, 115, 56]  3*203
2            [55]  1*202
3           [105]  1*201
4        [71, 70]  2*200
5           [110]  1*198