首页 > 解决方案 > 如何将数据从熊猫数据框的一列拆分为新数据框的多列

问题描述

我想从这个 pandas 数据框中拆分数据(我们称之为 df1):

YEAR   CODE   DIFF
2013   XXXX   5.50
2013   YYYY   8.50
2013   ZZZZ   6.50
2014   XXXX   4.50
2014   YYYY   2.50
2014   ZZZZ   3.50

这样我就创建了一个新的数据框(我们称之为 df2),如下所示:

YEAR   XXXX_DIFF   ZZZZ_DIFF
2013   5.50        6.50
2014   4.50        3.50

我想我是按年份分组并将在 DIFF 中找到的单列结果拆分为特定的 CODE 匹配项。我尝试过这样的事情:

df2 = df1[['YEAR','CODE','DIFF']].query('CODE == "XXXX"')

而且我知道我可以重命名列并删除多余的列,但我不确定如何将 ZZZZ DIFF 值传递给 df2?

标签: pythonpython-3.xpandas

解决方案


使用pivot+ filter+add_suffix

out = (df.pivot(*df).filter(['XXXX','ZZZZ']).add_suffix('_DIFF')
                   .reset_index().rename_axis(None,axis=1))

print(out)

   YEAR  XXXX_DIFF  ZZZZ_DIFF
0  2013        5.5        6.5
1  2014        4.5        3.5

推荐阅读