从.csv中获取与另一个datafram中的值在时间上最接近的值

2024-09-29 03:32:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个使用pandas创建并存储为.csv的数据帧。两个数据帧的每一行都有带有日期和时间的列,但时间戳不一定相同。所以,我想创建一个组合的数据帧,这样2在最近时间的基础上连接起来。你知道吗

这是我的first数据帧。这是我的second数据帧。我想为每个文件名获取kp和f107值,这些文件名在日期和时间上最接近第一个数据帧中每行的Avg\u time列。我该怎么做?有没有merge with method='nearest'类型的方法来处理pandas?你知道吗


Tags: csv数据pandastime文件名with时间merge
1条回答
网友
1楼 · 发布于 2024-09-29 03:32:44

您可以将Pandas 0.20.2中的pd.merge_asofdirection='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

相关问题 更多 >