擅长:python、mysql、java
<p>在可能的情况下,您应该瞄准矢量化操作。你知道吗</p>
<p>您可以计算两个结果,然后将它们串联起来。你知道吗</p>
<pre><code>mask = df['movie'].str.startswith('cane')
df1 = df[mask].groupby('movie')['value'].sum()
df2 = df[~mask].groupby('movie').size()
res = pd.concat([df1, df2], ignore_index=0)\
.rename('value').reset_index()
print(res)
movie value
0 cane1 8.0
1 cane22 4.0
2 cane34 7.0
3 wind1 1.0
4 wind2 2.0
</code></pre>