如何在Python 2 CSV中加入CSV
我有两个csv文件,比如说A.csv和B.csv。A.csv有A、b、c、d和b列。csv有x、y、z、t列。我想搜索,如果列a中的一个条目存在于列x中,那么如果该行存在,则打印z和d 像 --我已经有了下面的代码。我只需要学习如何解决这个问题的代码如何在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'
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
的样本数据帧和预期输出?