我有一个这样的数据框:
ID Distance
100007 0
100007 0
100007 0
100007 0
100007 0
100007 0
100013 39.22
100013 39.21
100013 39.21
100013 39.20
100013 39.19
100013 39.19
100013 39.21
100019 20.28
100019 29.74
100019 29.70
100019 29.73
从上面的数据框中我想得到这个:
ID d1 d2 d3 d4 d5 d6 d7
100007 0 0 0 0 0 0
100013 39.22 39.21 39.21 39.20 39.19 39.19 39.21
100019 20.2 29.74 29.70 29.73
如何使用python 3大熊猫获得此信息?请帮助我,谢谢!
答案 0 :(得分:2)
res = (df
.astype(str)
.groupby("ID")
.Distance.agg(",".join)
.str.split(",",expand=True)
)
res.columns = [ent+1 for ent in res.columns]
res.add_prefix("d")
d1 d2 d3 d4 d5 d6 d7
ID
100007 0.0 0.0 0.0 0.0 0.0 0.0 None
100013 39.22 39.21 39.21 39.2 39.19 39.19 39.21
100019 20.28 29.74 29.7 29.73 None None None
答案 1 :(得分:1)
country_region
打印:
g = df.groupby('ID')['Distance'].agg(list).to_list()
df2 = pd.DataFrame(g, columns=['d{}'.format(i) for i in range(1, len(max(g, key=len))+1)])
print(pd.concat([pd.Series(df['ID'].unique()), df2], axis=1).rename(columns={0:'ID'}))