人工智能:python 实现 第十一章,使用Pandas处理时间序列数据

使用Pandas处理时间序列数据 

    让我们开始学习如何使用Pandas处理时间数据。在本节中,我们会将一队数字转换为时间序列和可视化。Pandas提供了添加时间戳,组织数据等选项,之后可以高效的操作它。

    创建一个新的python文档,完整代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt


#定义函数读入数据,参数index 代表包含相关数据的列数
def read_data(input_file,index):
    input_data = np.loadtxt(input_file,delimiter=',')

    #定义一个lambda函数将string转换为Pandas日期格式
    to_date = lambda x,y:str(int(x))+'-'+str(int(y))

    #提取起始时间
    start = to_date(input_data[0,0],input_data[0,1])

    #提取结束时间
    if input_data[-1,1]==12:
        year = input_data[-1,0]+1
        month = 1
    else:
        year = input_data[-1,0]
        month = input_data[-1,1]+1
    end = to_date(year,month)

    #创建一个时间列表
    date_indices = pd.date_range(start,end,freq='M')
    #添加时间戳到输入数据来创建时间序列数据
    output = pd.Series(input_data[:,index],index = date_indices)
    return output


#定义主函数
if __name__ == '__main__':
    #输入文档名
    input_file = 'data_2D.txt'
    
    #指定需要转换的列数
    indice = [2,3]

    #迭代输入列数 并画出数据
    for  index in indice:
        #将行转换为时间序列
       timeseries = read_data(input_file,index)

       #绘制数据
       plt.figure()
       timeseries.plot()
       plt.title('Dimension'+str(index - 1))

    plt.show();
        

运行结果如下:

数据在第一维的显示:


数据在第二维显示:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值