简体   繁体   English

Python Pandas-数据框数据透视表

[英]Python pandas - dataframe pivot table

I have a dataframe that looks like this: 我有一个看起来像这样的数据框:

Hour  DayOfWeek
00    Friday         4
      Wednesday     19
01    Friday         7
07    Saturday       1
      Thursday       3
      Tuesday        3
      Wednesday      5
08    Friday         1
      Monday        17
      Thursday      10
      Tuesday       16
      Wednesday      8

and I want to make it into a dataframe like so: 我想像这样将其放入数据框:

Hour   Sunday   Monday   Tuesday   Wednesday   Thursday
01       4        5        6          0           7
03       3        5        6          6           0
05       2        1        8          6           9
11       0        1        8          0           0
12       1        5        7          6           7
15       1        5        6          0           2

plus I want to fill the zeros in the hours of the day to be in range 0 untill 23. 另外,我想将一天中的零点填充为0到23之间。

it looks like some kind of an advanced indexing in dataframe and I don't know how to do it, any help will be thanksfull! 它看起来像数据帧中的某种高级索引,但我不知道该怎么做,任何帮助将不胜感激!

thank you 谢谢

I think you need unstack : 我认为您需要unstack

print (df.index)
MultiIndex(levels=[[0, 1, 7, 8],
                   ['Friday', 'Monday', 'Saturday', 'Thursday', 'Tuesday', 'Wednesday']],
           labels=[[0, 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3], 
                   [0, 5, 0, 2, 3, 4, 5, 0, 1, 3, 4, 5]],
           names=['Hour', 'DayOfWeek'])

print (df.unstack(fill_value=0))
DayOfWeek  Friday  Monday  Saturday  Thursday  Tuesday  Wednesday
Hour                                                             
0               4       0         0         0        0         19
1               7       0         0         0        0          0
7               0       0         1         3        3          5
8               1      17         0        10       16          8

and last add reindex : 最后添加reindex

print (df.unstack(fill_value=0).reindex(np.arange(24), fill_value=0))

Hour                                                             
0               4       0         0         0        0         19
1               7       0         0         0        0          0
2               0       0         0         0        0          0
3               0       0         0         0        0          0
4               0       0         0         0        0          0
5               0       0         0         0        0          0
6               0       0         0         0        0          0
7               0       0         1         3        3          5
8               1      17         0        10       16          8
9               0       0         0         0        0          0
10              0       0         0         0        0          0
11              0       0         0         0        0          0
12              0       0         0         0        0          0
13              0       0         0         0        0          0
14              0       0         0         0        0          0
15              0       0         0         0        0          0
16              0       0         0         0        0          0
17              0       0         0         0        0          0
18              0       0         0         0        0          0
19              0       0         0         0        0          0
20              0       0         0         0        0          0
21              0       0         0         0        0          0
22              0       0         0         0        0          0
23              0       0         0         0        0          0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM