【问题标题】:Join dataframe with different indices加入具有不同索引的数据框
【发布时间】:2014-04-19 15:36:34
【问题描述】:

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

    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

非常感谢您的帮助

【问题讨论】:

  • 如果我的回答回答了你的问题,那么你应该接受它并点赞,答案旁边会有一个空的勾号

标签: python join pandas dataframe indices


【解决方案1】:

假设您有共同的索引,并且在两个数据帧中只有一个名称相同的列:

第一次合并

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2020-10-31
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2019-11-29
    相关资源
    最近更新 更多