为了账号安全,请及时绑定邮箱和手机立即绑定

将 panda 数据框中的垂直值转换为水平方向

将 panda 数据框中的垂直值转换为水平方向

慕侠2389804 2023-10-18 22:03:47
我目前有一个看起来像这样的数据框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


查看完整回答
反对 回复 2023-10-18
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信