如何枢转以下数据框,以便每个工作日都有一列?
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
值吗?