Max*_*uez 5 python datetime date dataframe pandas
I\xe2\x80\x99ve 有很多包含 2 列的 DataFrame,如下所示:
\n| 费查 | 团结 | |
|---|---|---|
| 0 | 2020-01-01 | 2.0 |
| 84048 | 2020-09-01 | 4.0 |
| 149445 | 2020-10-01 | 11.0 |
| 532541 | 2020-11-01 | 4.0 |
| 660659 | 2020-12-01 | 2.0 |
| 1515682 | 2021-03-01 | 9.0 |
| 1563644 | 2021-04-01 | 2.0 |
| 1759823 | 2021-05-01 | 1.0 |
| 2226586 | 2021-07-01 | 1.0 |
可以看出,还少了几个月。缺失数据取决于 DataFrame,我可以有 2 个月、10 个月、100% 完成,只有一个...我需要完成缺失月份的“Fecha”列(从 2020-01-01 到 2021-12-01)并且当日期添加到“Fecha”时,将“0”值添加到“unidades”列。
\nFecha Column 中的每个元素都是一个类 \'pandas._libs.tslibs.timestamps.Timestamp
\n我怎样才能填补每个数据帧缺失的日期?
\n小智 8
您可以创建一个日期范围并使用“Fecha”列set_index+reindex添加缺失的月份。然后fillna+reset_index获取所需的结果:
df['Fecha'] = pd.to_datetime(df['Fecha'])
df = (df.set_index('Fecha')
.reindex(pd.date_range('2020-01-01', '2021-12-01', freq='MS'))
.rename_axis(['Fecha'])
.fillna(0)
.reset_index())
Run Code Online (Sandbox Code Playgroud)
输出:
df['Fecha'] = pd.to_datetime(df['Fecha'])
df = (df.set_index('Fecha')
.reindex(pd.date_range('2020-01-01', '2021-12-01', freq='MS'))
.rename_axis(['Fecha'])
.fillna(0)
.reset_index())
Run Code Online (Sandbox Code Playgroud)