Поворот фрейма данных - PullRequest
0 голосов
/ 12 апреля 2019

Как мне повернуть следующий фрейм данных, чтобы иметь один столбец в день недели?

import numpy as np
import pandas as pd

idx = pd.date_range('2018-01', '2018-12', name='date')
df = pd.DataFrame(np.random.random(len(idx)), index=idx, columns=['value'])
df['weekday'] = idx.weekday

Я пробовал следующее, и хотя в день недели есть один столбец, их многоNaN значений.Это связано с тем, что индекс фрейма данных используется поворотным фреймом данных.

pivoted = df.pivot(columns='weekday', values='value')
pivoted.head()
# weekday            0         1         2       3         4   5   6
# date                                                              
# 2018-01-01  0.638018       NaN       NaN     NaN       NaN NaN NaN
# 2018-01-02       NaN  0.179721       NaN     NaN       NaN NaN NaN
# 2018-01-03       NaN       NaN  0.713559     NaN       NaN NaN NaN
# 2018-01-04       NaN       NaN       NaN  0.2092       NaN NaN NaN
# 2018-01-05       NaN       NaN       NaN     NaN  0.679759 NaN NaN

В конечном счете, я бы хотел получить коробочные графики значений за день недели.Следующее работает, потому что значения NaN игнорируются.

pivoted.plot.box()

Конечно, есть способ, который не включает много значений NaN?

1 Ответ

0 голосов
/ 13 апреля 2019

Если вы хотите получить коробочный график к рабочему дню, вам не нужно поворачиваться.Просто позвоните в коробку:

df.boxplot(column='value', by='weekday')

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...