我有两个.csv文件,A和B。A有1000000行和2列;B有20行2列。它们看起来像这样:
A:
Var1 S
x 2
y 1
z 7
x 2
x 3
z 4
B:
Var1 Var2
x a
y b
z c
A和B有一个包含3个变量(x,y,z)的列Var1,但在A中它们不是唯一的,而在B中它们是唯一的。B有一个附加的列Var2,它有3个变量(a,B,c)。使用Python或R,我想创建一个新的文件C,将一个新列Var2附加到a,其中Var1在a和B之间匹配,这样我就可以得到这样的东西:
C:
Var1 S Var 2
x 2 a
y 1 b
z 7 c
x 2 a
x 3 a
z 4 c
我一直在Python中使用字典和for循环,但没有成功。我的问题是,如果我使用"for A:",我只从A获得输出信息;而如果我使用"for B:",我只从B获得输出信息。我知道这在逻辑上没有意义,但我想做一些类似的事情:"对于A,从B获得匹配的输出信息"。
重要提示:通过用户的反馈,我刚刚意识到"merge"操作完成的工作非常简单,要么使用"panda"(python),要么使用R(dplyr,merge)。这比我想象的要简单。
在python的pandas
中(http://pandas.pydata.org/),您可以轻松地进行合并。
C = A.merge(B, on = "Var1")
使用以下代码
import pandas as pd
# create your two dataset here and perform below operation
pd.merge(FIRST_TABLE, SECOND_TABLE, how='left', on=['Var1'])
希望这能有所帮助!