<h3><a href="https://pandas.pydata.org/docs/reference/api/pandas.Series.mask.html" rel="nofollow noreferrer">^{<cd1>}</a>+<a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.duplicated.html" rel="nofollow noreferrer">^{<cd2>}</a></h3>
<p>我们可以定义一个列名列表,然后为for循环中的每一列<code>mask</code>定义每个唯一的重复值<code>location</code></p>
<pre><code>cols = ['people_vaccinated', 'people_fully_vaccinated', 'people_vaccinated_per_hundred']
for c in cols:
df[c] = df[c].mask(df.duplicated(['location', c]))
</code></pre>
<hr/>
<pre><code> location date people_vaccinated people_fully_vaccinated people_vaccinated_per_hundred
0 AL 12-01-2021 70861.0 7270.0 1.45
1 AL 13-01-2021 74792.0 9245.0 1.53
2 AL 14-01-2021 80480.0 11366.0 1.64
3 AL 15-01-2021 86956.0 13488.0 1.77
4 AL 16-01-2021 93797.0 14202.0 1.91
5 AL 17-01-2021 100638.0 14917.0 2.05
6 AS 22-01-2021 5627.0 940.0 10.10
7 AS 23-01-2021 5881.0 948.0 10.56
8 AS 24-01-2021 7096.0 NaN 12.74
9 AS 25-01-2021 NaN 949.0 12.98
10 AS 26-01-2021 7230.0 950.0 13.23
11 AS 27-01-2021 8133.0 NaN 14.60
</code></pre>