首页 > 解决方案 > how to aggregate information in one column of dataframe in python3?

问题描述

I have a dataframe:

import pandas as pd
d = {'user': ['bob','bob','peter','peter'], 'item': 
['s1','s1','s2','s2'],'value': 
[1,2,5,4]}
df = pd.DataFrame(data=d)

which is

    user    item    value
0   bob       s1    1
1   bob       s1    2
2   peter     s2    5
3   peter     s2    4

I tend to aggregate the value based on [user, item]. My new dataframe will be

    user    item    value
0   bob       s1    [1,2]
1   peter     s2    [5,4]

value is an array, how to do that ?

标签: python-3.xdataframeaggregate

解决方案


 df.groupby(['user','item']).agg(list).reset_index()

Out[110]: 
    user item   value
0    bob   s1  [1, 2]
1  peter   s2  [5, 4]

推荐阅读