我目前有一个看起来像这样的数据框DATE ID CHANGE05-05-2020 333333 1005-05-2020 333334 205-05-2020 333335 805-06-2020 333333 -205-06-2020 333334 405-06-2020 333335 5我希望能够按日期水平转换该数据帧并按 ID 分隔为 DATE ID CHANGE ID CHANGE ID CHANGE05-05-2020 333333 10 333334 2 333335 8 05-06-2020 333333 -2 333334 4 333335 5 或者 DATE 333333_CHANGE 333334_CHANGE 333335_CHANGE05-05-2020 10 2 805-06-2020 -2 4 5 我认为你必须做某种事情df.groupby(),或者pd.concat()尽管阅读它们的文档也让我感到困惑。
1 回答
holdtom
TA贡献1805条经验 获得超10个赞
如果可能,output#2 更好,因为重复的列名可能会导致 output#1 中出现许多不同的问题。
对于输出#2,使用.unstack()然后对多索引列进行一些清理以获得更好的格式:
df = df.set_index(['DATE', 'ID']).unstack(1).add_suffix('_CHANGE')
df.columns = df.columns.droplevel()
df = df.reset_index()
df
Out[1]:
ID DATE 333333_CHANGE 333334_CHANGE 333335_CHANGE
0 05-05-2020 10 2 8
1 05-06-2020 -2 4 5
添加回答
举报
0/150
提交
取消