首页 > 解决方案 > 如何在python中转换数据框

问题描述

我有一个具有以下值的数据框

Date,     value
2017/1/1, 5
2017/4/1, 6
2017/4/5, 12
2017/7/2, 15
2018/4/1, 50
2018/7/7, 11
2017/1/1, 5

我想将此数据框转换为以下格式,其中列是年/月广告值在行中

2017/1   2017/4  2017/7  2018/1  2018/4  2018/7
 5         6     15      5       50      11
           12     

我怎样才能做到这一点?

标签: pythonpandas

解决方案


你可以groupby重塑得到你的结果:

v = (df.set_index('Date')['value']
       .groupby(by=lambda x: x.rsplit('/', 1)[0], axis=0)
       .apply(list))
pd.DataFrame(v.values.tolist(), index=v.index).T

   2017/1  2017/4  2017/7  2018/4  2018/7
0     5.0     6.0    15.0    50.0    11.0
1     5.0    12.0     NaN     NaN     NaN

推荐阅读