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]