util.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2024/6/21
  3. # @Author : 魏志亮
  4. import datetime
  5. import pandas as pd
  6. def get_time_space(df, time_str):
  7. """
  8. :return: 查询时间间隔
  9. """
  10. begin = datetime.datetime.now()
  11. df1 = pd.DataFrame(df[time_str])
  12. df1['chazhi'] = df1[time_str].shift(-1) - df1[time_str]
  13. result = df1.sample(int(df1.shape[0] / 100))['chazhi'].value_counts().idxmax().seconds
  14. del df1
  15. print(datetime.datetime.now() - begin)
  16. return result
  17. def get_time_space_count(start_time: datetime.datetime, end_time: datetime.datetime, time_space=1):
  18. """
  19. 获取俩个时间之间的个数
  20. :return: 查询时间间隔
  21. """
  22. delta = end_time - start_time
  23. total_seconds = delta.days * 24 * 60 * 60 + delta.seconds
  24. return int(total_seconds / time_space) + 1
  25. if __name__ == '__main__':
  26. df = pd.read_csv(r"D:\trans_data\01.csv")
  27. df['time_stamp'] = pd.to_datetime(df['time_stamp'])
  28. space = get_time_space(df, 'time_stamp')
  29. min = df['time_stamp'].min()
  30. max = df['time_stamp'].max()
  31. result = get_time_space_count(min, max, space)
  32. print(df.shape)
  33. print(space, min, max, result)