代码之家  ›  专栏  ›  技术社区  ›  Wahyu Hadinoto

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

  •  0
  • Wahyu Hadinoto  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  3
  •   piRSquared    6 年前

    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