在CSV中转置特定数据

3

我有一个看起来像这样的 csv 文件:

Month     Day   Year  Tmax
   4       1    1912    56
   4       2    1912    56
   4       3    1912    74
   4       4    1912    82
   4       5    1912    79
   4       1    1913    73
   4       2    1913    60
   4       3    1913    67
   4       4    1913    81
   4       5    1913    77

我希望您能将其呈现如下所示:
Year  Month   1     2     3      4     5 
 1912   4     56     56    74     82    79
 1913   4     73     60    67     81    77

所以现在每个Day都是列标题,Tmax以列的形式呈现而不是行。我已经尝试过解除堆叠和转置,但似乎无法完全做到。希望能得到帮助。

顺便说一句,也可以这样做:df.set_index(['Year','Month','Day']).unstack() - JohnE
1个回答

3
你可以使用pd.pivot_table() 函数,将index 设置为['Year', 'Month'],将columns 设置为'Day',然后对'Tmax'值进行操作。
In [10]: pd.pivot_table(df, values='Tmax',
                        index=['Year', 'Month'],
                        columns='Day')
Out[10]:
Day          1   2   3   4   5
Year Month
1912 4      56  56  74  82  79
1913 4      73  60  67  81  77

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接