首页 > 解决方案 > 如何将行旋转到熊猫中的列

问题描述

我有一个 csv 格式的表格,看起来像这样。我想旋转列。

UserId Date category part_of_day Frequency duration_max

 1      2020-09-10  System tool     evening         1   3.436
 1      2020-09-11  Calendar        afternoon       5   5.313
 1      2020-09-11  Calendar         night          3   2.760
 1      2020-09-11  Clock            night          2   0.418
 1      2020-09-11  Communication   afternoon       35  59.936
50      2020-08-15  Communication        night      7   26.591
50      2020-08-15  Phone_and_SMS       morning     7   17.359
50      2020-08-15  Productivity        morning     4   45.751
50      2020-08-15  Productivity         night      2   5.832
`

我希望最终结果像这样:

UserId   date         System tool    Calendar   Clock  Communication Phone_and_SMS    Productivity               
 1    2020-09-10         1             nan       nan          nan      nan               nan
 1    2020-09-11         nan            5         2           35       nan               nan
 
 50   2020-08-15         nan            nan       nan        nan        7                 7                 

我试过这段代码: df.pivot_table(df,values = 'Frequency',index=['UserId'], columns = 'category')

标签: pythonpandas

解决方案


df.pivot_table与 一起使用aggfunc='first'

In [2383]: df.pivot_table(index=['UserId', 'Date'], columns='category', values='Frequency', aggfunc='first')
Out[2383]: 
category           Calendar  Clock  Communication  Phone_and_SMS  Productivity  System tool
UserId Date                                                                                
1      2020-09-10       NaN    NaN            NaN            NaN           NaN          1.0
       2020-09-11       5.0    2.0           35.0            NaN           NaN          NaN
50     2020-08-15       NaN    NaN            7.0            7.0           4.0          NaN

推荐阅读