Python 数据帧分组值

Python 数据帧分组值,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个像这样的熊猫数据框 dd = pd.DataFrame( {'name': ['abc','bcd','abc'], 'seconds': [75,77,90], }) 我需要将seconds列合并到一个列表中,列出具有相同名称的行 我可以用for循环来做这个 names= list(set(dd['name'])) counter=[] for a in names: counter.append(list(dd[dd['name'] == a]['seconds']))

我有一个像这样的熊猫数据框

dd = pd.DataFrame(
{'name': ['abc','bcd','abc'],
 'seconds': [75,77,90],
})

我需要将seconds列合并到一个列表中,列出具有相同名称的行

我可以用for循环来做这个

names= list(set(dd['name']))
counter=[]
for a in names:
    counter.append(list(dd[dd['name'] == a]['seconds']))
end
seconds_list = pd.DataFrame(
{'name': names,
'seconds': counter,
})
输出:

  name   seconds
0  abc  [75, 90]
1  bcd      [77]

但这需要在大数据帧上花费大量时间。没有for循环,有什么简单的方法可以实现这一点吗

谢谢

列表一起使用

df = dd.groupby('name')['seconds'].apply(list).reset_index()
print (df)

  name   seconds
0  abc  [75, 90]
1  bcd      [77]
 dd.groupby('name')['seconds'].agg(lambda x: x.tolist()).reset_index(name='seconds')

使用
groupby
agg
tolist

df = dd.groupby('name')['seconds'].apply(list).reset_index()
print (df)

  name   seconds
0  abc  [75, 90]
1  bcd      [77]
 dd.groupby('name')['seconds'].agg(lambda x: x.tolist()).reset_index(name='seconds')
输出:

  name   seconds
0  abc  [75, 90]
1  bcd      [77]