在另一个数据系列python中获取具有值的数据系列

时间:2018-09-10 04:29:53

标签: python pandas

我想从一个数据系列中获取一些数据,使用另一个数据系列中的值。例如:

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是“,”

1 个答案:

答案 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