12345678910111213141516171819202122232425262728293031 |
- 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)
|