import pandas as pd df = pd.read_csv(r'C:\Users\Administrator\Documents\WeChat Files\anmox-\FileStorage\File\2024-12\26故障.csv', encoding='gbk') df['开始时间'] = pd.to_datetime(df['开始时间'], errors='coerce') df['结束时间'] = pd.to_datetime(df['结束时间'], errors='coerce') time_df = pd.DataFrame(df.groupby(['开始时间'])['结束时间'].max()) time_df.reset_index(inplace=True) time_df.sort_values(by='开始时间', inplace=True) datas = set() max_row = None for index, row in time_df.iterrows(): if index == 0: datas.add((row['开始时间'], row['结束时间'])) max_row = row continue if row['结束时间'] > max_row['结束时间']: datas.add((row['开始时间'], row['结束时间'])) max_row = row result_df = pd.DataFrame() for begin, end in datas: print(begin, end) now_df = df[(df['开始时间'] == begin) & (df['结束时间'] == end)] now_df = now_df.tail(1) result_df = pd.concat([result_df, now_df]) result_df.sort_values(by='开始时间', inplace=True) result_df.to_csv(r'd:\data\26故障_new.csv', encoding='utf8', index=False)