繁体   English   中英

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

[英]Merging dataframes with pandas with two keys

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

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

区域- 100 行
代码 | 时间 | RData1 | 数据2

--我尝试过但失败了:

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

-- 在新的 df 中将 RData1,2 保留为空值,这看起来像

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

但空值对我没有帮助......

示例数据
我所看到的

数据

生成随机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

可以按如下方式合并索引

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM