系列文章目录
第一章 Pandas 学习入门之pandas数据读取
第二章 Pandas 学习入门之pandas数据结构
第三章 Pandas 学习入门之pandas数据查询
第四章 Pandas 学习入门之pandas新增数据列
第五章 Pandas 学习入门之pandas数据统计函数
第六章 Pandas 学习入门之pandas处理缺失值
第七章 Pandas 学习入门之pandas数据排序
第八章 Pandas 学习入门之pandas字符串操作
第九章 Pandas 学习入门之pandas重要参数axis
第十章 Pandas 学习入门之pandas索引index用途
第十一章 Pandas 学习入门之pandas实现DataFrame的Merge
第十二章 Pandas 学习入门之pandas实现数据合并Concat
第十三章 Pandas 学习入门之pandas批量拆分Excel与合并Excel
第十四章 Pandas 学习入门之pandas分组聚合统计groupby
第十五章 Pandas 学习入门之pandas分层索引MultiIndex
第十六章 Pandas 学习入门之pandas数据转换函数map、apply、applymap
第十七章 Pandas 学习入门之pandas对每个分组应用apply函数
第十八章 Pandas 学习入门之pandas通过stack和pivot实现数据透视
第十九章 Pandas 学习入门之pandas快捷方便的处理日期数据
随着人工智能的不断发展,数据分析这门技术也越来越重要,很多人都开启了学习数据分析,本文就介绍了pandas学习的基础内容。本章简单介绍了pandas处理日期格式的步骤,详细请看下文。
前言
本章简单介绍了pandas处理日期格式的步骤,详细请看下文。
提示:以下是本篇文章正文内容,下面案例可供参考
一、pandas处理日期格式
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
二、读取天气数据到DataFrame
1.引入库
import pandas as pd
%matplotlib inline
2.读取数据
fpath = "./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')
df.head()
3.将日期列转换成pandas的日期
df.set_index(pd.to_datetime(df["ymd"]), inplace=True)
df.head()
pd.to_datetime(df["ymd"])
将"ymd"
列的数据转换为日期时间格式;set_index(..., inplace=True)
将转换后的日期时间作为新的索引,inplace=True
表示在原始DataFrame上进行就地修改,而不返回新的DataFrame。
df.index
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08', '2018-01-09', '2018-01-10', ... '2018-12-22', '2018-12-23', '2018-12-24', '2018-12-25', '2018-12-26', '2018-12-27', '2018-12-28', '2018-12-29', '2018-12-30', '2018-12-31'], dtype='datetime64[ns]', name='ymd', length=365, freq=None)
# DatetimeIndex是Timestamp的列表形式
df.index[0]
Timestamp('2018-01-01 00:00:00')
三、方便的对DatetimeIndex进行查询
# 筛选固定的某一天
df.loc['2018-01-05']
ymd 2018/1/5 bWendu 3 yWendu -6 tianqi 多云~晴 fengxiang 西北风 fengli 1-2级 aqi 50 aqiInfo 优 aqiLevel 1 Name: 2018-01-05 00:00:00, dtype: object
# 日期区间
df.loc['2018-01-05':'2018-01-10']
# 按月份前缀筛选
df.loc['2018-03']
# 按月份前缀筛选
df.loc["2018-07":"2018-09"].index
DatetimeIndex(['2018-07-01', '2018-07-02', '2018-07-03', '2018-07-04', '2018-07-05', '2018-07-06', '2018-07-07', '2018-07-08', '2018-07-09', '2018-07-10', '2018-07-11', '2018-07-12', '2018-07-13', '2018-07-14', '2018-07-15', '2018-07-16', '2018-07-17', '2018-07-18', '2018-07-19', '2018-07-20', '2018-07-21', '2018-07-22', '2018-07-23', '2018-07-24', '2018-07-25', '2018-07-26', '2018-07-27', '2018-07-28', '2018-07-29', '2018-07-30', '2018-07-31', '2018-08-01', '2018-08-02', '2018-08-03', '2018-08-04', '2018-08-05', '2018-08-06', '2018-08-07', '2018-08-08', '2018-08-09', '2018-08-10', '2018-08-11', '2018-08-12', '2018-08-13', '2018-08-14', '2018-08-15', '2018-08-16', '2018-08-17', '2018-08-18', '2018-08-19', '2018-08-20', '2018-08-21', '2018-08-22', '2018-08-23', '2018-08-24', '2018-08-25', '2018-08-26', '2018-08-27', '2018-08-28', '2018-08-29', '2018-08-30', '2018-08-31', '2018-09-01', '2018-09-02', '2018-09-03', '2018-09-04', '2018-09-05', '2018-09-06', '2018-09-07', '2018-09-08', '2018-09-09', '2018-09-10', '2018-09-11', '2018-09-12', '2018-09-13', '2018-09-14', '2018-09-15', '2018-09-16', '2018-09-17', '2018-09-18', '2018-09-19', '2018-09-20', '2018-09-21', '2018-09-22', '2018-09-23', '2018-09-24', '2018-09-25', '2018-09-26', '2018-09-27', '2018-09-28', '2018-09-29', '2018-09-30'], dtype='datetime64[ns]', name='ymd', freq=None)
# 按年份前缀筛选
df.loc["2018"]
四、方便的获取周、月、季度
Timestamp、DatetimeIndex支持大量的属性可以获取日期分量:
# 周数字列表
df.index.week
# 月数字列表
df.index.month
Index([ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... 12, 12, 12, 12, 12, 12, 12, 12, 12, 12], dtype='int32', name='ymd', length=365)
# 季度数字列表
df.index.quarter
Index([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], dtype='int32', name='ymd', length=365)
五、统计每周、每月、每个季度的最高温度
1.统计每周的数据
df.groupby(df.index.week)["bWendu"].max()
df.groupby(df.index.week)["bWendu"].max().plot()
2.统计每个月的数据
df.groupby(df.index.month)["bWendu"].max()
ymd 1 7 2 12 3 27 4 30 5 35 6 38 7 37 8 36 9 31 10 25 11 18 12 10 Name: bWendu, dtype: object
df.groupby(df.index.month)["bWendu"].max().plot()
3.统计每个季度的数据
df.groupby(df.index.quarter)["bWendu"].max()
ymd 1 27 2 38 3 37 4 25 Name: bWendu, dtype: object
df.groupby(df.index.quarter)["bWendu"].max().plot()
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。