擅长:python、mysql、java
<p>groupby可以使用datetime属性完成(确保<code>Date</code>列是datetime,即<code>df['Date'] = pd.to_datetime(df['Date'])</code>):</p>
<pre><code>>>> df.groupby([df['Date'].dt.quarter, df['Date'].dt.year]).sum()
Number
Date Date
2017 1 150
2020 2 130
2021 3 70
</code></pre>
<p>只需重新命名索引即可。您可以通过以下方式实现指定的格式:</p>
<pre><code>df = df.groupby([df['Date'].dt.quarter, df['Date'].dt.year]).sum()
df.index = df.index.set_names(['Quarter', 'Year'])
q = df.index.get_level_values('Quarter').astype(str)
y = df.index.get_level_values('Year').astype(str)
df.index = 'Q'+ q + '-' + y
</code></pre>
<p>给予:</p>
<pre><code> Number
Q1-2017 150
Q2-2020 130
Q3-2021 70
</code></pre>