簡體   English   中英

熊貓:按年份分組並按地塊密度

[英]Pandas: Group by year and plot density

我有一個包含一些基於time的數據的數據框:

>>> temp.groupby(pd.TimeGrouper('AS'))['INC_RANK'].mean()
date
2001-01-01    0.567128
2002-01-01    0.581349
2003-01-01    0.556646
2004-01-01    0.549128
2005-01-01         NaN
2006-01-01    0.536796
2007-01-01    0.513109
2008-01-01    0.525859
2009-01-01    0.530433
2010-01-01    0.499250
2011-01-01    0.488159
2012-01-01    0.493405
2013-01-01    0.530207
Freq: AS-JAN, Name: INC_RANK, dtype: float64

現在我想繪制每年的密度。 以下命令用於其他數據幀,但此處不存在:

>>> temp.groupby(pd.TimeGrouper('AS'))['INC_RANK'].plot(kind='density')
ValueError: ordinal must be >= 1

該列的外觀如下:

>>> temp['INC_RANK'].head()
date
2001-01-01    0.516016
2001-01-01    0.636038
2001-01-01    0.959501
2001-01-01         NaN
2001-01-01    0.433824
Name: INC_RANK, dtype: float64

我認為這是由於您數據中的nan所致,因為無法估算nan s的密度。 但是,由於要可視化密度,假設丟失/未觀察到的像元應遵循與觀察到的/未缺失的像元相同的分布,只是簡單地降低缺失值就不是一個大問題。 因此, df.dropna().groupby(pd.TimeGrouper('AS'))['INC_RANK'].plot(kind='density')就足夠了。

另一方面,如果不是“未觀察到”缺失值,而是超出測量范圍的值(例如,來自溫度傳感器的數據,其讀數為0〜50F,但有時會遇到100F溫帶。傳感器發出錯誤代碼並記錄為缺失值),那么dropna()可能不是一個好主意。

暫無
暫無

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

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