gpt4 book ai didi

python - 通过 pandas 数据帧的列中具有不同标识符的重复日期时间索引进行聚合

转载 作者:行者123 更新时间:2023-11-30 23:12:42 26 4
gpt4 key购买 nike

我有一个这种形式的数据框:

         value     identifier
2007-01-01 0.781611 55
2007-01-01 0.766152 56
2007-01-01 0.766152 57
2007-02-01 0.705615 55
2007-02-01 0.032134 56
2007-02-01 0.032134 57
2008-01-01 0.026512 55
2008-01-01 0.993124 56
2008-01-01 0.993124 57
2008-02-01 0.226420 55
2008-02-01 0.033860 56
2008-02-01 0.033860 57

我可以使用此 answer 按标识符对数据进行分组。

by_date = df.groupby(df.index.date)['value'].mean()
2007-01-01 0.771305
2007-02-01 0.256628
2008-01-01 0.670920
2008-02-01 0.098047

现在我想按月绘制箱线图,所以我想我可以按它分组:

new_df = pd.DataFrame()
new_df['value'] = by_date
by_month = by_date.groupby(by_date.index.month)
aa = by_month.groupby(lambda x: x.month)
aa.boxplot(subplots=False)

如何在没有虚拟数据框的情况下创建此箱线图?

最佳答案

为了让 groupby 返回 df 而不是 Series,请使用双订阅 [[]]:

by_date = df.groupby(df.index.date)[['value']].mean()

然后,您可以按月分组并生成箱线图:

by_month = by_date.groupby(by_date.index.month)
by_month.boxplot(subplots=False)

双订阅的使用是一个微妙的功能,并不是立即显而易见的,通常执行df[col]会返回一个列,但我们知道传递一个列列表col_list 将返回一个 df: df[col_list] ,当展开时与 df[[col_a, col_b]] 相同,这导致我们可以如果我们执行以下操作,则返回 df:df[[col_a]] 因为我们传递了一个包含单个元素的列表,这与 df[col_a] 不同> 我们在其中传递了一个标签来执行列索引。

关于python - 通过 pandas 数据帧的列中具有不同标识符的重复日期时间索引进行聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29702372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com