Pandas系列学习教程——19 pandas快捷方便的处理日期数据

系列文章目录

第一章 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等多种日期格式映射成统一的格式对象,在该对象上提供强大的功能支持。

  1. pd.to_datetime:pandas的一个函数,能将字符串、列表、series变成日期形式
  2. Timestamp:pandas表示日期的对象形式
  3. 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提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值