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

我目前有一个看起来像这样的数据框


DATE        ID      CHANGE

05-05-2020   333333      10

05-05-2020   333334       2

05-05-2020   333335       8

05-06-2020   333333      -2

05-06-2020   333334       4

05-06-2020   333335       5

我希望能够按日期水平转换该数据帧并按 ID 分隔为


  DATE        ID      CHANGE      ID      CHANGE       ID      CHANGE

05-05-2020   333333      10      333334       2       333335       8       

05-06-2020   333333      -2      333334       4       333335       5  

或者


 DATE     333333_CHANGE     333334_CHANGE     333335_CHANGE

05-05-2020       10                 2                 8

05-06-2020       -2                 4                 5    

我认为你必须做某种事情df.groupby(),或者pd.concat()尽管阅读它们的文档也让我感到困惑。


慕侠2389804
浏览 65回答 1
1回答

holdtom

如果可能,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()dfOut[1]: ID        DATE  333333_CHANGE  333334_CHANGE  333335_CHANGE0   05-05-2020             10              2              81   05-06-2020             -2              4              5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python