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

时间:2019-03-09 18:27:19

标签: python pandas dataframe

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

dfOne有一列称为日期。从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 个答案:

答案 0 :(得分:2)

您可能需要将它们转换为日期时间格式

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

然后我们使用isin

df1.index[df1.Date.isin(df2.Date)]

答案 1 :(得分:1)

如果只需要知道相交值的索引,则可以使用

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中的相应索引。