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文件中搜索这些数字并打印其余的列"
答案 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
df1
和df2
。您可以按其列名选择第一个数据框的第一列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