我有两个csv文件-
CSV A-
Col1 Date/Time Col3
75 2023/01/02 15:37:53 52582.12
23 2023/01/02 15:38:11 52577.12
CSV B-
Col1 Col2 Date/Time Col4 Col5 Col6
23 XY 2023/01/02 15:37:49 NO_ERROR NO_ERROR AA
25 AB 2023/01/02 15:37:51 NO_ERROR NO_ERROR BB
31 CF 2023/01/02 15:37:56 NO_ERROR NO_ERROR CC
35 CV 2023/01/02 15:38:10 ERROR NO_ERROR DD
76 FH 2023/01/02 15:38:15 NO_ERROR NO_ERROR EE
79 FG 2023/01/02 15:38:21 NO_ERROR NO_ERROR FF
我想迭代CSV-A并将日期/时间与CSV-B“日期/时间”列进行比较,并从CSV-B中找出2个闭包“日期/时间”(一个较小,一个较大),并将这2个闭包“日期/时间”和其他几个列附加在同一行中,如下所示-
A_df = pd.read_csv('csv_A')
B_df = pd.read_csv('csv_B',usecols = ['Date/Time','Col2','Col4'])
for _, row in A_df.iterrows():
//compare date logic and append output into existing row OR create separate dataframe.
我需要的最终输出如下-
Col1 Date/Time Col3 CSV_B_Date_Smaller CSV_B_Col2 CSV_B_Date_greater CSV_B_Col2
Row 1 - 75 2023/01/02 15:37:53 52582.12 2023/01/02 15:37:51 AB 2023/01/02 15:37:56 CF
Row 1 - 23 2023/01/02 15:38:11 52577.12 2023/01/02 15:38:10 CV 2023/01/02 15:38:15 FH
谢谢你的帮助提前。
1条答案
按热度按时间nbnkbykc1#
使用双
merge_asof
,一次使用direction='backward'
,另一次使用direction='forward'
:merge_asof
需要)。*输出: