python - 加入具有不同索引的数据框

标签 python join pandas dataframe indices

请考虑以下以每日日期为索引的数据框

    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=Falseright_index=False

关于python - 加入具有不同索引的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403409/

相关文章:

python - 如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

join - hive中common join的执行过程

mysql - 我需要有关 mysql 中的 JOIN 查询的帮助

python - 使用前几天同一小时的平均值填充 NaN

python - 在 Python 中取消融化 Pandas 数据框?

python - <<Response[200]的绑定(bind)方法Response.json>>

python - Python 中的优化问题

python - OpenCV - 拆分和合并阿尔法 channel 很慢

mysql - 哪个更好 : calling procedure inside a procedure or executing sql inside a procedure?

python - 将数据框转换为元组列表的字典