[英]merging dataframes based on repeating keys in two different dataframes- pandas
[英]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.