【发布时间】:2021-06-14 19:50:27
【问题描述】:
我有一个 pandas DataFrame,其中包含每隔几分钟记录一次的值。
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['Time'] = pd.date_range("2018-01-01", periods=1000, freq="5Min")
df['Value'] = np.random.randint(1, 6, df.shape[0])
现在我想制作一个显示每天分布的箱线图。通常,我会使用 resample 或 groupby,但我无法将这些组反馈到 seaborn 以进行箱线图或执行一些其他统计。
现在我使用一种非常丑陋的形式将组返回到 DataFrame 并将其翻转以将日期作为列:
daily = df.groupby(pd.Grouper(key='Time', freq='1D'))
df_days = daily['Value'].apply(lambda df: df.reset_index(drop=True)).unstack().transpose()
df_days 可以输入 seaborn.boxplot 以生成晶须图。
有没有更简单的方法来获取 DataFrame df_days?
谢谢
【问题讨论】:
标签: python pandas seaborn boxplot