故障时间整理.py 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import pandas as pd
  2. df = pd.read_csv(r'C:\Users\Administrator\Documents\WeChat Files\anmox-\FileStorage\File\2024-12\26故障.csv',
  3. encoding='gbk')
  4. df['开始时间'] = pd.to_datetime(df['开始时间'], errors='coerce')
  5. df['结束时间'] = pd.to_datetime(df['结束时间'], errors='coerce')
  6. time_df = pd.DataFrame(df.groupby(['开始时间'])['结束时间'].max())
  7. time_df.reset_index(inplace=True)
  8. time_df.sort_values(by='开始时间', inplace=True)
  9. datas = set()
  10. max_row = None
  11. for index, row in time_df.iterrows():
  12. if index == 0:
  13. datas.add((row['开始时间'], row['结束时间']))
  14. max_row = row
  15. continue
  16. if row['结束时间'] > max_row['结束时间']:
  17. datas.add((row['开始时间'], row['结束时间']))
  18. max_row = row
  19. result_df = pd.DataFrame()
  20. for begin, end in datas:
  21. print(begin, end)
  22. now_df = df[(df['开始时间'] == begin) & (df['结束时间'] == end)]
  23. now_df = now_df.tail(1)
  24. result_df = pd.concat([result_df, now_df])
  25. result_df.sort_values(by='开始时间', inplace=True)
  26. result_df.to_csv(r'd:\data\26故障_new.csv', encoding='utf8', index=False)