我实际上是2个数据帧:
我需要使用最近的时间作为键(忽略日期)
来组合2数据帧我需要在第一个数据帧中的给定时间内找到第二个数据帧中最近的时间索引(或值)
我希望你明白
编辑:
FROM CSV dataFrame 1:
date;index
01/01/90 00:00:00;2
01/01/90 00:00:30;9
FROM CSV dataFrame 2:
date;value
02/02/00 00:00:02;300
需要:
date;value;index
02/02/00 00:00:02;300;2
答案 0 :(得分:1)
您可以reindex
使用method='nearest'
:
#new indexes with same dates, but different times
df1.index = pd.to_datetime(df1['date'].dt.strftime('%H:%M:%S'))
df2.index = pd.to_datetime(df2['date'].dt.strftime('%H:%M:%S'))
print (df1)
date index
date
2017-02-20 00:00:00 1990-01-01 00:00:00 2
2017-02-20 00:30:00 1990-01-01 00:00:30 9
print (df2)
date value
date
2017-02-20 00:02:00 2000-02-02 00:00:02 300
df3 = df1.reindex(df2.index, method='nearest')
#add values from df2
df = pd.concat([df3.drop('date', axis=1), df2], axis=1).reset_index(drop=True)
print (df)
index date value
0 2 2000-02-02 00:00:02 300