按列值分组数据
嗨我有数据(在Excel和文本文件以及)像
C1 C2 C3 1 pa 1 qb 2 rc 2 sd
我想要的输出如下所示:
C1 C2 C3 1 p,qa,b 2 r,sc,d
如何根据列值对数据进行分组。 我对任何东西都是开放的:任何库,任何语言,任何工具就像Python,bash甚至是excel?
我想我们可以在Python中使用pandas来做到这一点,但是我之前没有使用它。
任何导致赞赏。
首先pandas.read_excel
– 输出是DataFrame
:
df = pd.read_excel('file.xlsx')
那么你可以使用groupby
和agg
join
:
df = df.groupby('C1').agg(','.join).reset_index() print (df) C1 C2 C3 0 1 p,qa,b 1 2 r,sc,d
如果df
更多的列,并且只需要筛选C2
和C3
:
df = df.groupby('C1')['C2','C3'].agg(','.join).reset_index() print (df) C1 C2 C3 0 1 p,qa,b 1 2 r,sc,d
为了保存到excel
文件使用DataFrame.to_excel
,显然没有index
:
df.to_excel('file.xlsx', index=False)