请考虑以下数据框,并将每日日期作为索引
df1= pd.date_range(start_date, end_date)
df1 = pd.DataFrame(index=date_range, columns=['A', 'B'])
现在我有第二个数据帧df2,其中df2.index是df1.index的子集 我想将df2中的数据加入到df1中,并希望将缺少的索引加入到NAN中。 在第二步中,我想用最后一个可用数据替换NaN,如下所示:
2004-03-28 5
2004-03-30 NaN
2004-03-31 NaN
2004-04-01 7
应该成为
2004-03-28 5
2004-03-30 5
2004-03-31 5
2004-04-01 7
非常感谢你的帮助
答案 0 :(得分:1)
假设您有两个数据帧中的公共索引和一个名称相同的列:
首次合并
df1 = df1.merge(df2, how='left')
现在使用&fffill'填充缺失值这意味着forwards fill:
df1 = df1.fillna(method='ffill')
如果列的名称不相同,您可以重命名列:
right.rename(columnss={'old_name':'new_name'},inplace=True)
或指定左侧和右侧的列以合并:
df1.merge(df2, left_on='left_col', right='right_col', how='left')
如果索引不匹配,则必须设置left_index=False
和right_index=False