Pandas实现对日期的快速处理

Pandas日期处理的作用:将2018-01-01、1/1/2018等多种日期格式映射成统一的格式对象,在该对象上提供强大的功能支持


image.png

几个概念:

  1. pd.to_datetime:pandas的一个函数,能将字符串、列表、series变成日期形式
  2. Timestamp:pandas表示日期的对象形式
  3. 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())
image.png
2、将日期列转换成pandas的日期
df.set_index(pd.to_datetime(df["ymd"]),inplace = True)
print(df.head())
print(df.index)
image.png
3、方便的对DatetimeIndex进行查询

获取某个日期

a = df.loc["2018-01-01"]
print(a)

image.png

日期区间

b = df.loc["2018-01-05":"2018-01-10"]
print(b)

image.png

按月份前缀筛选

c = df.loc["2018-03"].head()
print(c)

image.png

按月份区间筛选

d = df.loc["2018-07":"2018-09"].index
print(d)

image.png

按年份前缀筛选

d = df.loc["2018"].index
print(d)
image.png
4、方便的获取周、月、季度

获取周

a = df.index.isocalendar().week
print(a)

image.png

获取月

b = df.index.month
print(b)

image.png

获取季度

c = df.index.quarter
print(c)
image.png
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)

image.png

image.png

统计每个月最高温度

b = df.groupby(df.index.month)["bWendu"].max().head()
c = df.groupby(df.index.month)["bWendu"].max().plot()
plt.show()
print(b)
image.png

你可能感兴趣的:(Pandas实现对日期的快速处理)