大熊猫数据集团年度指数十年

wis*_*wit 8 python pandas

假设我的数据框的索引是dataframe.groupby(lambda x:x.year)月度时间步长,我知道我可以用来将每月数据分组到每年并应用其他操作.有没有什么方法可以快速分组,让我们说十年?

谢谢你的任何提示.

DSM*_*DSM 22

要获得这个十年,你可以将年份整数除以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
Run Code Online (Sandbox Code Playgroud)

你可以像往常一样按年份分组(这里我们有一个DatetimeIndex非常简单的方法):

>>> df.groupby(df.index.year).sum().head()
         A
2001   354
2002  1074
2003  1794
2004  2514
2005  3234
Run Code Online (Sandbox Code Playgroud)

或者你可以做到这一点(x//10)*10:

>>> df.groupby((df.index.year//10)*10).sum()
           A
2000   29106
2010  100740
2020  172740
2030  244740
2040   77424
Run Code Online (Sandbox Code Playgroud)

如果你没有可以使用的东西.year,你仍然可以lambda x: (x.year//10)*10).


Shi*_*948 6

如果你的数据框有标题说:DataFrame ['Population','Salary','vehicle count']

将索引设为年份:DataFrame=DataFrame.set_index('Year')

使用下面的代码对 10 年的数据进行重新采样,并为您提供该十年内的一些所有其他列

datafame=dataframe.resample('10AS').sum()