Pandas日期处理的作用:将2018-01-01、1/1/2018等多种日期格式映射成统一的格式对象,在该对象上提供强大的功能支持
几个概念:
- pd.to_datetime:pandas的一个函数,能将字符串、列表、series变成日期形式
- Timestamp:pandas表示日期的对象形式
- DatetimeIndex:pandas表示日期的对象列表形式
其中:
- DatetimeIndex是Timestamp的列表形式
- pd.to_datetime对单个日期字符串处理会得到Timestamp
- pd.to_datetime对日期字符串列表处理会得到DatetimeIndex
一、统计得到每周、每月、每季的最高温度
1、读取天气数据到dataframe
import pandas as pd
import matplotlib.pyplot as plt #画图需要的包
fpath = r"D:\node\nd\Pandas_study\pandas_test\beijing_tianqi_2018.csv"
df = pd.read_csv(fpath)
# 替换掉温度的后缀℃
df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int32')
df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int32')
print(df.head())
2、将日期列转换成pandas的日期
df.set_index(pd.to_datetime(df["ymd"]),inplace = True)
print(df.head())
print(df.index)
3、方便的对DatetimeIndex进行查询
获取某个日期
a = df.loc["2018-01-01"]
print(a)
日期区间
b = df.loc["2018-01-05":"2018-01-10"]
print(b)
按月份前缀筛选
c = df.loc["2018-03"].head()
print(c)
按月份区间筛选
d = df.loc["2018-07":"2018-09"].index
print(d)
按年份前缀筛选
d = df.loc["2018"].index
print(d)
4、方便的获取周、月、季度
获取周
a = df.index.isocalendar().week
print(a)
获取月
b = df.index.month
print(b)
获取季度
c = df.index.quarter
print(c)
5、统计每周、每月、每季的最高温度
每周最高温度
a = df.groupby(df.index.isocalendar().week)["bWendu"].max().head()
b = df.groupby(df.index.isocalendar().week)["bWendu"].max().plot()
plt.show()
print(a)
统计每个月最高温度
b = df.groupby(df.index.month)["bWendu"].max().head()
c = df.groupby(df.index.month)["bWendu"].max().plot()
plt.show()
print(b)