<p>更简单、更高效的版本:</p>
<p>您可以在<code>'sum'</code>上使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html" rel="nofollow noreferrer">^{<cd1>}</a>+<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.transform.html" rel="nofollow noreferrer">^{<cd2>}</a>来获取组的和。然后,您可以将列<code>TotalValidVotes</code>除以该和,然后乘以100得到百分比</p>
<pre><code>df['TotalValidVotes_Pct'] = (df['TotalValidVotes'] / df.groupby('Municipality')['TotalValidVotes'].transform('sum')) * 100
</code></pre>
<p>请注意,此版本<strong>仅使用矢量化操作,运行速度应更快</p>
<p><strong>结果:</strong></p>
<pre><code>print(df)
Municipality PartyName TotalValidVotes TotalValidVotes_Pct
0 BUF - Buffalo City AFRICAN CHRISTIAN DEMOCRATIC PARTY 2519 0.634710
1 BUF - Buffalo City AFRICAN INDEPENDENT CONGRESS 15600 3.930719
2 BUF - Buffalo City AFRICAN NATIONAL CONGRESS 268052 67.540832
3 BUF - Buffalo City CONGRESS OF THE PEOPLE 3913 0.985955
4 BUF - Buffalo City DEMOCRATIC ALLIANCE 106790 26.907784
</code></pre>