擅长:python、mysql、java
<p>@AnnaIliukovich Strakovskaia解决方案很棒。我用纯熊猫重新写的。你知道吗</p>
<pre><code>#Generate input dataframe from @AnnaIliukovich-Strakovskaia
df = pd.DataFrame({'order':['A', 'B', 'C', 'D', 'E', 'F'],'quantity':[1,1,2,3,3,4]})
#Expand dataframe
df_out = df.order.repeat(df.quantity).reset_index(drop=True).to_frame()
#Create groupings of four records
df_out['grp'] = df_out.index // 4
#Groupby 'grp' and count
df_out.groupby(['grp','order'])['order'].count().to_frame(name='quantity')
</code></pre>
<p>输出:</p>
<pre><code> quantity
grp order
0 A 1
B 1
C 2
1 D 3
E 1
2 E 2
F 2
3 F 2
</code></pre>