假設我有一個索引爲monthy timestep的數據框,我知道我可以使用dataframe.groupby(lambda x:x.year)
將每月數據分組爲每年並應用其他操作。有什麼方法可以快速分組他們,比如說十年?熊貓數據幀組年度索引十年
感謝您的任何提示。
假設我有一個索引爲monthy timestep的數據框,我知道我可以使用dataframe.groupby(lambda x:x.year)
將每月數據分組爲每年並應用其他操作。有什麼方法可以快速分組他們,比如說十年?熊貓數據幀組年度索引十年
感謝您的任何提示。
要獲得十年,您可以通過10 10整數除年份,然後乘以例如,如果你從
>>> dates = pd.date_range('1/1/2001', periods=500, freq="M")
>>> df = pd.DataFrame({"A": 5*np.arange(len(dates))+2}, index=dates)
>>> df.head()
A
2001-01-31 2
2001-02-28 7
2001-03-31 12
2001-04-30 17
2001-05-31 22
您可以通過年級組,像往常一樣(從這裏開始我們有一個DatetimeIndex
所以它真的很容易):
>>> df.groupby(df.index.year).sum().head()
A
2001 354
2002 1074
2003 1794
2004 2514
2005 3234
,或者你可以做(x//10)*10
招:
>>> df.groupby((df.index.year//10)*10).sum()
A
2000 29106
2010 100740
2020 172740
2030 244740
2040 77424
如果您沒有可以使用的東西.year
,您仍然可以使用lambda x: (x.year//10)*10)
。
使用指數的年屬性:
df.groupby(df.index.year)
可以說,你的日期列由命名Date
,那麼您可以將起來
dataframe.set_index('Date').ix[:,0].resample('10AS', how='count')
注:ix
- 這裏選擇數據框中的第一列
你得到各種補償: http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases