如何用熊猫系列中的日期替换日期列中的 NaT?

Jun*_*rat 2 python pandas

我有一个df如下:

dates   values
2020-12-31 23:45:00 75.6
2021-01-01 00:00:00 74.7
 NaT                73.7
 NaT                72.3
 NaT                70.5
 NaT                68.2
Run Code Online (Sandbox Code Playgroud)

我想NaT用我制作的系列替换这些值,如下所示:

oct_two_am = datetime.datetime(2020, 10, 25, 2, 0)
oct_three_am = datetime.datetime(2020, 10, 25, 3, 0)

# generates 15mins data
oct_dls = pd.date_range(start=oct_two_am, end=oct_three_am, freq='15min', closed='left')
oct_dls = oct_dls.to_series().reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)

这给了我以下系列oct_dls

oct_dls
Out[26]: 
0   2020-10-25 02:00:00
1   2020-10-25 02:15:00
2   2020-10-25 02:30:00
3   2020-10-25 02:45:00
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)

现在,我想用系列中的值替换NaTs我的数据df框中的oct_dls

我试过:

df['dates'] = df['dates'].fillna(value=oct_dls)
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

任何帮助表示赞赏。谢谢

WeN*_*Ben 5

由于您的索引不匹配,这就是为什么不填充空值的原因。

index match 是 pandas 赋值中的隐藏键之一。

oct_dls.index=df.index[df['dates'].isnull()]
df['dates'] = df['dates'].fillna(value=oct_dls)
Run Code Online (Sandbox Code Playgroud)