使用不同的索引加入数据帧

时间:2014-03-14 11:12:21

标签: 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
非常感谢你的帮助

1 个答案:

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