如何比较python中两个不同的.csv文件中的列?

时间:2018-04-06 03:44:21

标签: python python-3.x pandas

import pandas as pd
A=pd.read_csv("C:/Users/amulya/Desktop/graves lab/main_now.csv", index_col=False, header=None)
DATA1=pd.DataFrame(A)
DATA1[0]
B=pd.read_csv("C:/Users/amulya/Desktop/graves lab/words.csv", index_col=False, header=None) 
DATA2=pd.DataFrame(B)
DATA2[0]
for xrow in range (1,len(DATA1)):  
for yrow in range (1,len(DATA2)):
    if DATA2== DATA1:
    print(DATA1[3]) 

"在DATA1文件的第1列中有1-3000的数字,在DATA2的第1列中有465个随机数。我想在DATA1文件中搜索这些数字并打印其余的列"

1 个答案:

答案 0 :(得分:1)

您可以使用isin查找Data2的col1中的值是否为Data1的col1中的值,然后通过该布尔数据帧对Data1进行切片。

import pandas as pd
df1 = pd.DataFrame({'col1': [1,2,3,4,5,6,7,8,9],
                    'col2': [1,3,5,7,9,11,13,15,17]})
df2 = pd.DataFrame({'col1': [1, 101, 6, 9, 4]})

我们有两个DataFrames df1df2。您可以按其列名选择第一个数据框的第一列df['col1']或等效df.col1

df1.col
#0    1
#1    2
#2    3
#3    4
#4    5

您想要的条件是df1.col1中的值是否出现在df2的第一列中。这是通过isin函数完成的。语法按预期读取,它查找df1.col1是否在df2.col1'并返回一个真/假数据帧。

df1.col1.isin(df2.col1)
#0     True
#1    False
#2    False
#3     True
#4    False
#5     True

当您使用此真假数据帧对df1进行切片时,它仅返回TRUE的行,在本例中为索引0,3,5和8.它将返回所有列,因为你只是按行切割数据帧。

df1[df1.col1.isin(df2.col1)]
#   col1  col2
#0     1     1
#3     4     7
#5     6    11
#8     9    17