我知道这应该很容易,但是这让我发疯了...
我正在尝试将数据框转换为分组的数据框。
df
输出:
Postcode Borough Neighbourhood
0 M3A North York Parkwoods
1 M4A North York Victoria Village
2 M5A Downtown Toronto Harbourfront
3 M5A Downtown Toronto Regent Park
4 M6A North York Lawrence Heights
5 M6A North York Lawrence Manor
6 M7A Queen's Park Not assigned
7 M9A Etobicoke Islington Avenue
8 M1B Scarborough Rouge
9 M1B Scarborough Malvern
10 M3B North York Don Mills North
...
我想制作一个分组的数据帧,其中按邮政编码对邻居进行分组,然后所有邻域都按邮政编码对接,成为邻居的串联字符串... 像这样:
Postcode Borough Neighbourhood
0 M3A North York Parkwoods
1 M4A North York Victoria Village
2 M5A Downtown Toronto Harbourfront, Regent Park
...
我正在尝试使用:
df.groupby(['Postcode'])['Neighbourhood'].apply(lambda strs: ', '.join(strs))
但这不会返回新的数据帧。.运行后,当我使用df
时,它会输出相同的原始数据帧。
如果我使用:
df = df.groupby(['Postcode'])['Neighbourhood'].apply(lambda strs: ', '.join(strs))
将df变成对象吗?
答案 0 :(得分:1)
使用此代码
new_df = df.groupby(['Postcode', 'Borough']).agg({'Neighbourhood':lambda x:', '.join(x)}).reset_index()
reset_index()
将使您的group by列从索引中移出,并将其作为列返回到数据框,并创建一个新的整数索引。