pandas时间序列及重采样2

现在有北京城市空气质量数据,绘制PM2.5随时间的变化情况

  • 读取数据,可以看到PM_US Post 这一列数据值比较多,所以选择这一列数据做图
import os
import pandas as pd

files = os.listdir("PM2.5")
df = pd.read_csv("PM2.5/" + files[0])
df.info()

pandas时间序列及重采样2_第1张图片

  • 删除空值 可以看到它的是时间是按照年月日以及小时来放在每一列的,下面使用PeriodIndex这个函数生成新的索引
df.dropna(subset=["PM_US Post"], inplace=True)
df

pandas时间序列及重采样2_第2张图片

  • 生成新的索引
dt = pd.PeriodIndex(year=df["year"], month=df["month"], day=df["day"], hour=df["hour"], freq="H")
df.set_index("datetime", inplace=True)
df.head()

pandas时间序列及重采样2_第3张图片

  • 重采样,7天为一个周期,取平均值
df = df.resample("7D").mean()
df

pandas时间序列及重采样2_第4张图片

  • 画图
from matplotlib import pyplot as plt

font = {
    'family' : 'simhei',
    'weight' : 'bold',
    'size'   : '14'
}

plt.rc('font', **font)


x_label = df.index
x = range(len(x_label))
y = df["PM_US Post"]

plt.figure(figsize=(18,6))

plt.xticks(x[::10], x_label[::10], rotation=45)

plt.plot(x, y)

plt.title("北京 PM2.5 变化情况", fontsize=20, fontstyle="oblique")

plt.show()

pandas时间序列及重采样2_第5张图片

你可能感兴趣的:(python数据处理和分析)