请考虑以下以每日日期为索引的数据框
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
非常感谢你的帮助
最佳答案
假设您有共同的索引,并且只有一个列在两个数据框中的名称相同:
第一次合并
df1 = df1.merge(df2, how='left')
现在使用“ffill”填充缺失值,这意味着 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
关于python - 加入具有不同索引的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403409/