<p>一种直截了当的方法可能是创建国家和日期的笛卡尔乘积,然后加入其中,为每个缺少的日期和国家组合创建空值</p>
<pre><code>countries = df.loc[:, ['country', 'iso_code']].drop_duplicates()
dates = df.loc[:, 'date'].drop_duplicates()
all_countries_dates = countries.merge(dates, how='cross')
df.merge(all_countries_dates, how='right', on=['country', 'iso_code', 'date'])
</code></pre>
<p>使用以下数据集:</p>
<pre><code>country iso_code date people_vaccinated people_fully_vaccinated
Norway NOR 2021-05-09 0.00 1.00
Norway NOR 2021-05-10 0.00 3.00
Norway NOR 2021-05-11 27.81 9.55
Norway NOR 2021-05-12 28.49 10.42
Norway NOR 2021-05-13 28.49 10.42
United States USA 2021-05-09 23.00 3.00
United States USA 2021-05-10 23.00 3.00
</code></pre>
<p>此转换将为您提供:</p>
<pre><code>country iso_code date people_vaccinated people_fully_vaccinated
Norway NOR 2021-05-09 0.00 1.00
Norway NOR 2021-05-10 0.00 3.00
Norway NOR 2021-05-11 27.81 9.55
Norway NOR 2021-05-12 28.49 10.42
Norway NOR 2021-05-13 28.49 10.42
United States USA 2021-05-09 23.00 3.00
United States USA 2021-05-10 23.00 3.00
United States USA 2021-05-11 NaN NaN
United States USA 2021-05-12 NaN NaN
United States USA 2021-05-13 NaN NaN
</code></pre>
<p>在此之后,可以使用fillna更改添加行的空值</p>