您好我有数据(在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来做到这一点,但我之前没有使用它。
任何线索都赞赏。
答案 0 :(得分:3)
首先pandas.read_excel
- 输出为DataFrame
:
df = pd.read_excel('file.xlsx')
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
文件,请使用DataFrame.to_excel
,显然没有index
:
df.to_excel('file.xlsx', index=False)