从.csv获取最接近另一个数据帧中的值的值

时间:2017-06-23 17:06:32

标签: python python-2.7 python-3.x pandas

我有2个使用pandas创建的数据帧并存储为.csv。两个数据帧的每一行都有包含日期​​和时间的列,但时间戳不一定相同。所以,我想创建一个组合的pandas数据帧,以便在CLOSEST时间基础上连接2。

这是我的first数据框。这是我的second数据框。我想获得第一个数据帧中每行的Avg_time列的日期和时间最接近的每个文件名的kp和f107值。我该怎么做呢?是否合并方法='最近'用pandas键入方法吗?

1 个答案:

答案 0 :(得分:0)

您可以在Pandas 0.20.2中使用pd.merge_asof direction='nearest'

pd.merge_asof(df1.sort_values(by='file_date'),df2.sort_values(by='AST'), left_on='file_date', right_on='AST', direction='nearest')

输出:

    Filename  file_date Avg_time                 AST   f107   kp
0  Na1998319 1998-11-16     2:14 1998-11-15 23:00:00  121.8  2.3
1  Na1998320 1998-11-17     2:01 1998-11-16 23:00:00  118.0  2.3
2  Na1998321 1998-11-18     0:38 1998-11-17 23:00:00  112.2  2.3
3  Na1998322 1998-11-18    20:51 1998-11-17 23:00:00  112.2  2.3
4  Na1999020 1999-01-20    22:53 1999-01-19 23:00:00  231.3  0.7