擅长:python、mysql、java
<p>使用<code>pd.Grouper</code>按月份分组和<code>transform</code>:</p>
<pre><code>df["Date"] = pd.to_datetime(df["Date"])
df["max"] = df.groupby(pd.Grouper(key="Date", freq="M"))["value"].transform("max")
# or df.groupby(df["Date"].str[:8])["value"].transform("max")
print (df)
Date value month year max
0 2013-01-03 13 1 2013 14
1 2013-01-06 14 1 2013 14
2 2014-01-03 16 1 2014 16
3 2011-01-03 15 1 2011 15
</code></pre>