用两个键将数据框与熊猫合并

时间:2020-04-02 18:45:41

标签: python pandas merge

我有两个数据集,一个具有单独的报告,一个具有区域条件。个人行比地区行多,但我想将地区数据附加到每个人身上。我面临的问题是我必须使用两个主键进行合并,例如

个人-5000行
代码时间|数据1 |数据2 |数据3

区域-100行
代码时间| RData1 | RData2

-我尝试使用以下方法失败:

df = individual.merge(regional, how='left', on=['Code', 'Time'])

-将RData1,2作为空值保留在新df中,这确实值得一看

df -5000行
代码时间|数据1 |数据2 |数据3 | RData1 | RData2

但是null值对我没有帮助...

Example Data
What I am seeing

1 个答案:

答案 0 :(得分:0)

数据

生成随机df

 rng = pd.date_range('2015-02-24', periods=5, freq='T')
    df = pd.DataFrame({ 'Time': rng, 'data1': np.random.randn(len(rng)),'code':[201, 897,345, 70,879] }) 
    df.set_index(['Time','code'], inplace=True)
    df

生成随机df1

df1 = pd.DataFrame({ 'Time': rng, 'data1': np.random.randn(len(rng)),'code':[201, 30,345, 70,879] }) 
df1.set_index(['Time','code'], inplace=True)
df1

merge关于索引的操作可按如下操作

result =df1.merge(df, left_index=True, right_index=True, suffixes=('_Left','_Right'))
result

更好

result =pd.merge(df, df1,left_index=True, right_index=True, suffixes=('_Left','_Right'))
result