问题描述
嗨,我有数据(在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来做到这一点,但是我以前从未使用过。
任何线索表示赞赏。
1楼
第一个输出为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
更多列并且仅需要过滤C2
和C3
:
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)