寻找时间的熊猫作为索引并且忽略日期

时间:2017-02-20 11:06:43

标签: python date pandas datetime dataframe

我实际上是2个数据帧:

  1. 第一个包含一些日期/时间信息
  2. 第二个包含日期/时间的其他信息
  3. 我需要使用最近的时间作为键(忽略日期)

    来组合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
    

1 个答案:

答案 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