对列值进行分组数据

时间:2017-02-16 06:48:23

标签: python excel bash pandas

您好我有数据(在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 个答案:

答案 0 :(得分:3)

首先pandas.read_excel - 输出为DataFrame

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

然后,您可以groupby join使用agg

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文件,请使用DataFrame.to_excel,显然没有index

df.to_excel('file.xlsx', index=False)