擅长:python、mysql、java
<p>为了得到十年,你可以把年份除以10,然后乘以10。例如,如果你从</p>
<pre><code>>>> 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
</code></pre>
<p>你可以像往常一样按年分组(这里我们有一个<code>DatetimeIndex</code>,所以很简单):</p>
<pre><code>>>> df.groupby(df.index.year).sum().head()
A
2001 354
2002 1074
2003 1794
2004 2514
2005 3234
</code></pre>
<p>或者你可以做<code>(x//10)*10</code>技巧:</p>
<pre><code>>>> df.groupby((df.index.year//10)*10).sum()
A
2000 29106
2010 100740
2020 172740
2030 244740
2040 77424
</code></pre>
<p>如果你没有可以使用<code>.year</code>的东西,你仍然可以使用<code>lambda x: (x.year//10)*10)</code>。</p>