转换值一列单行的Python
问题描述:
我有一个熊猫数据框,看起来像这样:转换值一列单行的Python
Area1 Area2
1 2
1 4
1 5
1 9
2 8
2 16
2 4
2 1
3 8
3 9
我如何转换“区域2”列,使之成为每个“区域1的值的列表“列
所以输出我希望是:
Area1 Area2
1 2, 4, 5, 9
2 8, 16, 4, 1
3 8, 9
我已经R中以前也做过这样的:
df %>% group_by(Area1) %>% summarise(Area2= toString(sort(unique(Area2))))
我一直在尝试groupby()和agg(),但没有成功。
有人能解释一下我可以提前使用一次,我一直在使用df.groupby(“区域1”),分组数据
非常感谢您的任何建议。
答
可以GROUPBY和应用列表
import pandas as pd
df=pd.read_csv("test.csv")
df.groupby('Area1')['Area2'].apply(list)
答
将R片段做字符串连接。
以下行保留原始类型Area2
。
import pandas as pd
df.groupby('Area1').Area2.apply(pd.Series.tolist).reset_index()