r-Python.使用for循环和dicts:for文件A中的行:从文件B获得匹配的输出



我有两个.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'])

希望这能有所帮助!

最新更新