博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据分析-day06-pandas-dataFrame案例分析4:使用PeriodIndex将离散组成pandas的时间序列,然后统计不同时间段,两个地方的pm值走势
阅读量:4287 次
发布时间:2019-05-27

本文共 1635 字,大约阅读时间需要 5 分钟。

数据集:

代码:

# -*- coding: utf-8 -*-# @File    : pandas_dataframe_periodIndex_demo.py# @Date    :  2020-01-07 15:59# @Author  : adminimport pandas as pdfrom matplotlib import pyplot as pltimport numpy as  np;df=pd.read_csv("../../data/BeijingPM20100101_20151231.csv");#df=df.head(1000);print(df.head(5))print(df.info())print("=================================================将离散型的时间字段,使用preriodinde封装成pandas的时间序列=========")d=pd.PeriodIndex(year=df["year"],month=df["month"],day=df["day"],hour=df["hour"],freq="H")#print(d)#新增一列df["time"]=d;#设置为索引df.set_index("time",inplace=True);print(df)#重采样,降维,以7天显示一下df = df.resample("7D").mean()print(df.head())#处理缺失数据us_data=df["PM_US Post"].dropna();cn_data=df["PM_Nongzhanguan"].dropna();#us_data=df["PM_US Post"]#cn_data=df["PM_Nongzhanguan"]x_us=us_data.index;x_us=[m.strftime("%Y%m%d") for m in x_us]y_us=us_data.values;x_cn=cn_data.index;x_cn=[m.strftime("%Y%m%d") for m in x_cn];y_cn=cn_data.values;print(len(x_us),len(x_cn))print("###################################################画图展示###########################")plt.figure(figsize=(20,8),dpi=80)plt.plot(range(len(x_us)),y_us,label="us",alpha=0.7);plt.plot(range(len(x_cn)),y_cn,label="cn",alpha=0.7);#plt.xticks(range(len(x_us)),x_us);plt.xticks(range(0,len(x_us),10),list(x_us)[::10],rotation=45);plt.legend(loc="best")plt.show();

展示:

如果x轴显示的时间太多,我们可以设定步长显示:

plt.xticks(range(0,len(x_us),10),list(x_us)[::10],rotation=45);

从图上可看到:10年到13年中国的数据是缺失的,居然有数据显示,主要是中国和美国两个城市的数据长度不一致造成,

313 155

假设,不过滤nan的数据:

us_data=df["PM_US Post"].dropna();cn_data=df["PM_Nongzhanguan"].dropna();

改为:

us_data=df["PM_US Post"]cn_data=df["PM_Nongzhanguan"]

再执行:

转载地址:http://qxtgi.baihongyu.com/

你可能感兴趣的文章
C语言socket编程总结(七)int socket/connect()/send()/recv()/close()/shutdown()/recvfrom
查看>>
C语言socket编程总结(八)bind()
查看>>
C语言socket编程(九)listen()
查看>>
C语言socket编程(十)a'c'cept()
查看>>
C语言socket编程(十一)CFNetworking框架/CFSocket////CFStream属于CoreFoundation
查看>>
java 基础IO/inputStream/outputStream/buffInputStrem/buffOutputStrem
查看>>
java 多线程一
查看>>
java基础/IO流/、序列化和反序列化、浅复制和深复制
查看>>
java基础/IO流(二)
查看>>
java/多线程二
查看>>
java/设计原则
查看>>
java/GUI 编程
查看>>
java/socket编程
查看>>
java/反射/JDK新特性
查看>>
java/AJAX
查看>>
java/AJAX/JSON/XML/JQUERY
查看>>
iOS加载控制器的三种方式/loadNibName与initwithNibName的区别
查看>>
java/tomcat /http协议
查看>>
java/severelet
查看>>
iOS编译问题的N种可能
查看>>