pandas 补充知识:data_range函数

 1 函数介绍

pandas.date_range(
    start=None, 
    end=None, 
    periods=None, 
    freq='D', 
    tz=None, 
    normalize=False, 
    name=None, 
    closed=None, 
    **kwargs)

在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。

2 主要参数说明

periods取多少个时间片
freq日期偏移量,取值为string或DateOffset,默认为'D'
normalize若参数为True表示将start、end参数值正则化到午夜时间戳
name生成时间索引对象的名称,取值为string或None
closed

可以理解成在closed=None情况下返回的结果中,

若closed=‘left’表示在返回的结果基础上,再取左闭右开的结果,

若closed='right'表示在返回的结果基础上,再取左开右闭的结果

3 举例说明

3.1 start&end

3.2 period

 3.3  freq

 

 

3.4 normalize

 

3.5 closed

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以考虑优化以下几个方面: 1. 代码注释:可以添加一些注释,说明每个函数的作用和输入输出参数。 2. 函数拆分:可以将这个函数拆分成多个小函数,每个小函数只处理一个特定的任务,这样可以使代码更加可读。 3. 使用 numpy 和 pandas 函数:可以使用 pandas 的 fillna 函数,将缺失值按照指定的方式进行填充,可以使用 numpy 的 arange 函数,生成等差数列。这样可以使代码更加简洁。 4. 代码风格:可以遵循 PEP 8 代码风格,使得代码更加规范和易读。 重构后的代码如下所示: ```python import pandas as pd import numpy as np import datetime def fill_missing_data(data): """ 将缺失值按照前向填充的方式进行填充 """ data.fillna(method='ffill', inplace=True) return data def generate_time_list(date_history): """ 根据日期列表生成时间列表 """ history_time_list = [datetime.datetime.strptime(date[0], '%Y/%m/%d %H:%M') for date in date_history] start_time = history_time_list[0] end_time = history_time_list[-1] delta = datetime.timedelta(minutes=15) time_new_list = [] current_time = start_time while current_time <= end_time: time_new_list.append(current_time) current_time += delta return time_new_list def find_missing_positions(time_new_list, history_time_list): """ 查找缺失位置 """ code_list = [] for i in range(len(time_new_list)): while (time_new_list[i] - history_time_list[i]) != datetime.timedelta(minutes=0): history_time_list.insert(i, time_new_list[i]) code_list.append(i) return code_list def fill_missing_positions(data_history, code_list): """ 根据缺失位置进行数据填充 """ for i in code_list: data_history.insert(i, data_history[i-1]) return data_history def data_processing(data): """ 对数据进行处理,包括缺失值处理和数据补充 """ data = fill_missing_data(data) date_history = pd.DataFrame(data.iloc[:, 0]) data_history = pd.DataFrame(data.iloc[:, 1]) date_history = np.array(date_history) data_history = [x for item in np.array(data_history).tolist() for x in item] time_new_list = generate_time_list(date_history) code_list = find_missing_positions(time_new_list, history_time_list) data_history = fill_missing_positions(data_history, code_list) data = pd.DataFrame({'date': time_new_list, 'load': data_history}) return data ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值