gpt4 book ai didi

python - groupby 的 groupby 用于选择 pandas 中的值

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:14 24 4
gpt4 key购买 nike

我有一个数据框如下:

marker    date         value       identifier

EA 2007-01-01 0.33 55
EA 2007-01-01 0.73 56
EA 2007-01-01 0.51 57
EA 2007-02-01 0.13 55
EA 2007-02-01 0.23 57
EA 2007-03-01 0.82 55
EA 2007-03-01 0.88 56
EB 2007-01-01 0.13 45
EB 2007-01-01 0.74 46
EB 2007-01-01 0.56 47
EB 2007-02-01 0.93 45
EB 2007-02-01 0.23 47
EB 2007-03-01 0.82 45
EB 2007-03-01 0.38 46
EB 2007-03-01 0.19 47

现在我想按值对此数据框进行选择,所以我使用

df.groupby(marker).get_group('EA')

但我也想获得该值的平均值,并注意到我有一个重复的日期索引,所以现在我必须执行两个分组,因为索引不同,导致

df.groupby(marker).get_group('EA').groupby(df.groupby(marker).get_group('EA').index.date).mean()['value'].plot()

显然不太清晰。如何在不创建中间变量的情况下完成此任务?

最佳答案

您不能,因为您在上面关于 AssertionError 的评论中写道。 Pandas 期望根据某个序列执行(第二个)groupby,该序列的长度与分组的 DataFrame 完全相同。如果您不愿意首先创建一个描述 EA 值的 DataFrame,那么您基本上只能在运行中再次创建它。

这不仅难以辨认,而且成本也不必要地昂贵。说到这里,我会像这样重写你的代码:

eas = df[df.marker == 'EA']
eas.value.groupby(eas.date).mean().plot();

执行groupby并保留单个组是一种非常昂贵的仅根据键进行过滤的方法。

关于python - groupby 的 groupby 用于选择 pandas 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30173481/

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