123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # -*- coding: utf-8 -*-
- # @Time : 2024/6/21
- # @Author : 魏志亮
- import datetime
- import pandas as pd
- def get_time_space(df, time_str):
- """
- :return: 查询时间间隔
- """
- begin = datetime.datetime.now()
- df1 = pd.DataFrame(df[time_str])
- df1['chazhi'] = df1[time_str].shift(-1) - df1[time_str]
- result = df1.sample(int(df1.shape[0] / 100))['chazhi'].value_counts().idxmax().seconds
- del df1
- print(datetime.datetime.now() - begin)
- return result
- def get_time_space_count(start_time: datetime.datetime, end_time: datetime.datetime, time_space=1):
- """
- 获取俩个时间之间的个数
- :return: 查询时间间隔
- """
- delta = end_time - start_time
- total_seconds = delta.days * 24 * 60 * 60 + delta.seconds
- return int(total_seconds / time_space) + 1
- def calculate_time_difference(now: datetime.datetime, date: datetime.datetime):
- # 计算时间差
- delta = now - date
- # 分解timedelta对象
- years, days = divmod(delta.days, 365)
- months, days = divmod(days, 30) # 这里假设一个月有30天
- hours, remainder = divmod(delta.seconds, 3600)
- minutes, seconds = divmod(remainder, 60)
- return years, months, days, hours, minutes, seconds
- if __name__ == '__main__':
- df = pd.read_csv(r"D:\data\清理数据\密马风电场\test_11_test\minute\WOG00469.csv")
- df['time_stamp'] = pd.to_datetime(df['time_stamp'])
- space = get_time_space(df, 'time_stamp')
- min = df['time_stamp'].min()
- max = df['time_stamp'].max()
- result = get_time_space_count(min, max, space)
- print(df.shape)
- print(space, min, max, result)
- year, monht, day, _, _, _ = calculate_time_difference(datetime.datetime.now(), max)
- print(f"{year}年{monht}月{day}天")
|