如何在Python 2 CSV中加入CSV

如何在Python 2 CSV中加入CSV,python,pandas,csv,numpy,Python,Pandas,Csv,Numpy,我有两个csv文件,比如说A.csv和B.csv。A.csv有A、b、c、d和b列。csv有x、y、z、t列。我想搜索,如果列a中的一个条目存在于列x中,那么如果该行存在,则打印z和d 像 --我已经有了下面的代码。我只需要学习如何解决这个问题的代码 import pandas as pd import numpy as np import matplotlib.pyplot as plt A = pd.read_csv('path1') B = pd.read_csv('path2'

我有两个csv文件,比如说A.csvB.csv。A.csv有A、b、c、d和b列。csv有x、y、z、t列。我想搜索,如果列a中的一个条目存在于列x中,那么如果该行存在,则打印z和d

--我已经有了下面的代码。我只需要学习如何解决这个问题的代码

 import pandas as pd
 import numpy as np
 import matplotlib.pyplot as plt


A = pd.read_csv('path1')
B = pd.read_csv('path2')

我认为最简单的解决方案是使用左连接:

>>> print(A)
   a  b  c  d
0  1  2  3  4
1  2  3  4  5
2  4  4  5  6

>>> print(B)

   x   y   z   t
0  1  20  30  40
1  3   4   5   6

>>> result = A.merge(left_on='a', right=B, right_on='x', how='left')[['z', 'd']].dropna()

>>> print(result)
      z  d
0  30.0  4

我认为最简单的解决方案是使用左连接:

>>> print(A)
   a  b  c  d
0  1  2  3  4
1  2  3  4  5
2  4  4  5  6

>>> print(B)

   x   y   z   t
0  1  20  30  40
1  3   4   5   6

>>> result = A.merge(left_on='a', right=B, right_on='x', how='left')[['z', 'd']].dropna()

>>> print(result)
      z  d
0  30.0  4

设想您的csv数据文件如下所示:

print(df1)

    A   B   C   D
0   1   4   7   4
1   2   5   8   5
2   3   6   9   8

print(df2

    X   Y   Z   T
0   1   11  6   8
1   5   12  8   0
2   2   13  0   4
考虑到左边的表是df1,右边的表是df2,一个简单的合并可以解决您的问题

df  = df1.merge(df2,left_on='A',right_on='X')[['Z','D']]

print(df)

    Z   D
0   6   4
1   0   5

这将返回上述列中匹配的行元素。(这里是Z,D)

想象一下您的csv数据文件如下所示:

print(df1)

    A   B   C   D
0   1   4   7   4
1   2   5   8   5
2   3   6   9   8

print(df2

    X   Y   Z   T
0   1   11  6   8
1   5   12  8   0
2   2   13  0   4
考虑到左边的表是df1,右边的表是df2,一个简单的合并可以解决您的问题

df  = df1.merge(df2,left_on='A',right_on='X')[['Z','D']]

print(df)

    Z   D
0   6   4
1   0   5

这将返回上述列中匹配的行元素。(此处Z,D)

您能否提供
A
B
的样本数据帧和预期输出?您能否提供
A
B
的样本数据帧和预期输出?