我有2个使用pandas创建的数据帧并存储为.csv。两个数据帧的每一行都有包含日期和时间的列,但时间戳不一定相同。所以,我想创建一个组合的pandas数据帧,以便在CLOSEST时间基础上连接2。
这是我的first数据框。这是我的second数据框。我想获得第一个数据帧中每行的Avg_time列的日期和时间最接近的每个文件名的kp和f107值。我该怎么做呢?是否合并方法='最近'用pandas键入方法吗?
答案 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