问题描述
"""
id counts
0 001 12
1 002 3
2 001 4
按对应id整理整理成如下格式
id
001 16
002 3
"""
python实现:
import pandas as pd
df = pd.DataFrame({'id': ['001', '002', '001'],
'counts': [12, 3, 4]},
columns=['id', 'counts'])
print(df)
# df_merge = df.groupby('id')['counts'].sum()
df_merge = df['counts'].groupby(df['id']).sum()
print(df_merge)
note:
1. df.groupby会生成一个GroupBy的对象,实际并没有进行任何计算(只是生成了一些有关分组键df['id']的中间数据),然后可以调用mean(), count(), sum()等方法产生一个Series,其中索引为‘id’中的唯一值。
2. 用法是:(真正需要计算的数据列).groupby(df['分组规则列']).计算函数()
3. 若分组规则列有多个,又想得到df形式的结果,可以使用reset_index()转换。
4.GroupBy对象还可以分组迭代,用法如下:
for name, group in grouped:
print(name)
print(group)