当前位置: 代码迷 >> python >> 按列值分组数据
  详细解决方案

按列值分组数据

热度:13   发布时间:2023-06-14 08:47:38.0

嗨,我有数据(在Excel和文本文件中也是如此),例如

C1   C2    C3
 1    p     a
 1    q     b
 2    r     c
 2    s     d

我想要这样的输出:

C1   C2   C3
 1   p,q  a,b
 2   r,s  c,d

如何根据列值对数据进行分组。 我对任何事物都开放:任何库,任何语言,任何工具(例如python,bash甚至是excel)?

我认为我们可以在python中使用pandas来做到这一点,但是我以前从未使用过。

任何线索表示赞赏。

第一个输出为DataFrame

df = pd.read_excel('file.xlsx')

然后,您可以将与 join一起使用:

df = df.groupby('C1').agg(','.join).reset_index()
print (df)
   C1   C2   C3
0   1  p,q  a,b
1   2  r,s  c,d

如果df更多列并且仅需要过滤C2C3

df = df.groupby('C1')['C2','C3'].agg(','.join).reset_index()
print (df)
   C1   C2   C3
0   1  p,q  a,b
1   2  r,s  c,d

要保存到excel文件,请使用 ,显然没有index

df.to_excel('file.xlsx', index=False)
  相关解决方案