擅长:python、mysql、java
<p>首先让我们做一个目标正则表达式替换,只替换后面的数字
<code>CAT A</code></p>
<p>因此{<cd2>}><code>CAT A</code></p>
<pre><code>df['CAT'] = df['CAT'].str.replace('(CAT A)(\d+)',r'\1')
</code></pre>
<p>然后按顺序分组</p>
<pre><code>df.groupby(['Product','Date','CAT'])['Value'].sum()
Product Date CAT
Product A Apr CAT A 300
CAT B 300
CAT C 400
Jul CAT C 500
Jun CAT B 400
May CAT A 500
Product B Apr CAT A 500
CAT B 400
CAT C 500
May CAT A 1300
CAT B 800
CAT C 900
Name: Value, dtype: int64
</code></pre>
<p>如果希望返回数据帧,请添加<code>.reset_index()</code></p>