dat1 = {'test1':['a','b','c','d','e','f','g','h','i','j','k'],
'test2':[1,2,3,4,5,6,7,8,9,10,11],'test3'
[10,11,12,13,14,15,16,17,18,19,20]}
dat2 = {'param':['q','a','z','b','o']}
df1 = pd.DataFrame(dat1)
df2 = pd.DataFrame(dat2)
我想获取的数据如下:
dat3 = {'test1':['a','b'],'test2':[1,2],'test3':[10,11]}
只是示例,真实数据的第一个数据系列的行数超过1200行x 5列,第二个数据系列的行数超过5000行x 2列。
ps:我的数据扩展名是csv,sep是“,”
答案 0 :(得分:3)
query
df1.query('test1 in @df2.param')
test1 test2 test3
0 a 1 10
1 b 2 11
isin
df1[df1.test1.isin(df2.param)]
test1 test2 test3
0 a 1 10
1 b 2 11
numpy.in1d
df1[np.in1d(df1.test1, df2.param)]
test1 test2 test3
0 a 1 10
1 b 2 11