重新索引 Pandas 具有特定日期时间索引的数据框

Reindexing Pandas Dataframe with specific datetime indexes

我有一个简单的问题,最好用一个例子来描述。我正在尝试根据 current_dfparent_df.

渲染 output_df

current_df:具有日期时间索引的简单时间序列 df

Index                            Val
'10-1-2010 08:00:00'              1.23
'10-1-2010 09:00:00'              1.3
'10-1-2010 10:00:00'               1.43

parent_df:另一个简单的时间序列 df

Index                            Val
'10-1-2010 07:00:00'              0.23
'10-1-2010 08:00:00'              1.23
'10-1-2010 09:00:00'              1.3
'10-1-2010 10:00:00'               1.43
'10-1-2010 11:00:00'              2.23

output_df应该:

  1. 包含 parent_df
  2. 的索引
  3. 如果索引不在 current_df
  4. 中,则包含值为 0
Index                             Val
'10-1-2010 07:00:00'              0
'10-1-2010 08:00:00'              1.23
'10-1-2010 09:00:00'              1.3
'10-1-2010 10:00:00'               1.43
'10-1-2010 11:00:00'                0

这应该是一个简单的任务 - 我只是在发呆。

干杯。

我认为是reindex

的功能
output_df = current_df.reindex(parent_df.index, fill_value=0)

您可以像下面这样使用合并来完成

parent_df[["Index"]].merge(current_df, on="Index", how="left").fillna(0)

我认为这段代码会对您有所帮助。

# copy the dataframe
output_df = parent_df

# use negated .isin() search to find the indices that are not in current_df
# and replace them with zero
output_df.loc[~output_df['Index'].isin(current_df['Index'])] = 0