簡體   English   中英

groupby的groupby以選擇熊貓中的值

[英]groupby of a groupby to select values in pandas

我有一個數據框,如下所示:

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')

但是我也想獲取值的平均值,並注意我有一個重復的日期索引,所以現在我必須做兩個 groupby,因為索引不同,導致

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

顯然不是很清楚。 如何在不創建中介變量的情況下完成此任務?

由於上面您在有關AssertionError的評論中所寫的原因,您不能這樣做。 大熊貓期望做的(第二) groupby根據其具有完全按相同的長度的一些序列DataFrame得到分組。 如果您不願意首先創建一個描述EA值的DataFrame ,則基本上可以隨時進行重新創建。

這不僅不那么清晰,而且不必要地昂貴。 說到這,我將像這樣重寫您的代碼:

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

做一個groupby和保持一個組是由密鑰只是過濾一個非常昂貴的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM