【发布时间】:2019-10-16 09:15:20
【问题描述】:
我知道这应该很容易,但它让我发疯......
我正在尝试将数据框转换为分组数据框。
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
...
我想创建一个分组数据框,其中 Neighborhood 按 Postcode 分组,然后所有邻域变成 Neighborhoods 的串联字符串,按 Postcode 分组... 类似:
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 变成一个对象?
【问题讨论】:
-
谢谢.. 看起来我在正确的轨道上,但我仍然无法让数据框显示正确。
df.groupby('Postcode').agg({'Neighbourhood':lambda x:', '.join(x)})然后df仍然返回一个未分组的数据帧... -
如果您不将新数据框分配给新变量,则不会。我很确定 group by 没有到位
-
所以看起来所有要做的就是创建一个以 Postcode 作为索引的新数据框,但 Neighborhood 看起来是正确的..现在需要弄清楚如何将它恢复到原始数据框..
-
将
.reset_index()添加到链的末尾。文档可以找到here