重新索引 Pandas 具有特定日期时间索引的数据框
Reindexing Pandas Dataframe with specific datetime indexes
我有一个简单的问题,最好用一个例子来描述。我正在尝试根据 current_df
和 parent_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应该:
- 包含
parent_df
的索引
- 如果索引不在
current_df
中,则包含值为 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
我有一个简单的问题,最好用一个例子来描述。我正在尝试根据 current_df
和 parent_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应该:
- 包含
parent_df
的索引
- 如果索引不在
current_df
中,则包含值为 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