代码之家  ›  专栏  ›  技术社区  ›  mHelpMe

在数据框中查找日期并获取这些日期的索引

  •  0
  • mHelpMe  · 技术社区  · 7 年前

    我有两个数据帧,分别是dfOne和dfTwo。

    dfOne有一个名为Dates的列。从2016年1月1日到2018年1月1日,每天都有。

    dfTwo还有一个名为Dates的列,但假设只有5个日期,

      4th Feb 2016
      23rd March 2016
      3rd May 2016
      22nd November 2016
      18th July 2017
    

    在数据帧dfOne中查找上述每个日期的索引的最佳方法是什么?

    2 回复  |  直到 7 年前
        1
  •  2
  •   BENY    7 年前

    df2.Date=pd.to_datetime(df2.Date)
    df1.Date=pd.to_datetime(df1.Date)
    

    然后我们使用 isin

    df1.index[df1.Date.isin(df2.Date)]
    
        2
  •  1
  •   rafaelc    7 年前

    pd.isin 如果您只需要知道相交值的索引,那么这是一种方法。如果你需要实际的 index df2

    df2.set_index('dates').assign(index=df.set_index('dates')['index']).reset_index()
    

    例如,MCVE:

    df          = pd.DataFrame({'dates': ['10/10/2010', '10/11/2010', '10/12/2010', '10/13/2010']}) 
    df['index'] = df.index
    df2         = pd.DataFrame({'dates': ['10/10/2010', '10/13/2010']})
    

    然后,df2从

        dates
    0   2010-10-10
    1   2010-10-13
    

        dates       index
    0   2010-10-10  0
    1   2010-10-13  3
    

    其中,0和3是中各自的索引 df .