我有两个数据帧,分别是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中查找上述每个日期的索引的最佳方法是什么?
答案 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
中的相应索引。