Pandas 数据处理 | Datetime 在 Pandas 中的一些用法!
Datatime 是 Python 中一种时间数据类型,对于不同时间格式之间的转换是比较方便的,而在 Pandas 中也同样支持 DataTime 数据机制,可以借助它实现许多有用的功能,例如
1,函数to_datetime() 将数据列表中的 Series 列转化为 datetime 类型,
#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()
#
0 2014-07-08
1 2014-07-07
2 2014-07-03
3 2014-07-02
4 2014-07-01
Name: Date, dtype: datetime64[ns]
2,DataFrame.resample(freq),将数据基于时间列以 freq 作为频度对全局数据做重采样,计算出分段数据和、均值、方差等指标;下面例子中原数据的索引是 Datatime 数据格式,以月为时间单位求出各列数据的平均值
# Resample the data based the offset,get the mean of data
# BM — bussiness month end frequency
apple_month = apple.resample("BM").mean()
apple_month.head()

下面将根据几道练习题,简单介绍一下 Pandas 是怎么处理 DataFrame 数据的
1 , to_datetime() 与 resample() 操作
1.1,读取数据
url = "https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/09_Time_Series/Apple_Stock/appl_1980_2014.csv"
apple =pd.read_csv(url)
apple.head()
可以看到,时间在 Date 这一列数据中,但不是标准的 datetime 格式,需要格式处理一下

1.2,datetime 格式转换
#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()

**1.3,将 Date 列设为 index **
apple = apple.set_index("Date")
# Set Index
apple.head()
Date 虽然已经设为 index,但是时间排列却并不清晰,datetime 数据可以直接排序这里用 sort_index(ascending = True) 完成排序

1.4,对索引进行排序
# Sort The DataFrame based on Date columns
apple.sort_index(ascending = True).head()

1.5,以月为单位对数据采样并获取mean()
# Resample the data based the offset,get the mean of data
# BM — bussiness month end frequency
apple_month = apple.resample("BM").mean()
apple_month.head()

BM 全称 Bussiness Month,是商业月的意思,在 Pandas 中称为 DataOffset,除了月之外,还提供年、日、秒、小时、分..等作为采样单位,当然也可以自定义

关于 Data Offset 具体详细内容可参考:https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases;
1.6,计算时间列表中最早日期与最晚日期相差天数
(apple.index.max()-apple.index.min()).days
#
12261
2,统计近两年苹果、特斯拉、IBM、LINKD各公司股价
2.1,pandas_datareader 获取数据
import pandas as pd
from pandas_datareader import data as web
import datetime as dt
start = dt.datetime(2019,1,1)
end = dt.datetime.today()
stocks = ['APPLE','TSLA','IBM','LNKD']
df = web.DataReader(stocks,'yahoo',start,end)
df
使用之前请确保pandas_datareader 包已经安装成功,这个包帮助我们直接通过爬虫获取近两年的各公司的股票信息,后面 start,end 两个 datetime 时间用于限制时间
结果显示似乎这种方法获取不到到的苹果和LINKD 的股价(但并不影响,因为这里主要是学习一下 datetime 在 Pandas 的用法)

2.2,获取 股票 数据
vol = df['Volume']
vol

**2.3,创建新列,表示 week、year **
后面做聚类分析,聚类基准选择的是 week、year , 因此需要提前创建好两列(week,year)数据
vol['week'] = vol.index.week
vol['year'] = vol.index.year
vol.head()

2.4,groupby 聚类分组(先 week ,后 year)
week = vol.groupby(['week','year']).sum()
week.head()
这样就可以很清晰地比对,2019-2020年对于每一周来说各公司股票的总值变化啦

好了,以上就是本篇文章的所有内容啦;最后,感谢大家的阅读!
Reference:
1,https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases
2,https://github.com/guipsamora/pandas_exercises/blob/master/09_Time_Series/Getting_Financial_Data
Pandas 数据处理 | Datetime 在 Pandas 中的一些用法!的更多相关文章
- Pandas: 如何将一列中的文本拆分为多行? | Python
Pandas: 如何将一列中的文本拆分为多行? 在数据处理过程中,经常会遇到以下类型的数据: 在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行. 在上图中,列名 ...
- mysql基础(2)-数据处理(mysql+pandas)
插入语句insert insert 数据表名(字段名...) values(字段值): 例 : insert into new_student values("张"," ...
- 用Python的pandas框架操作Excel文件中的数据教程
用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...
- python之pandas学习笔记-初识pandas
初识pandas python最擅长的就是数据处理,而pandas则是python用于数据分析的最常用工具之一,所以学python一定要学pandas库的使用. pandas为python提供了高性能 ...
- Python:pandas(二)——pandas函数
Python:pandas(一) 这一章翻译总结自:pandas官方文档--General functions 空值:pd.NaT.np.nan //判断是否为空 if a is np.nan: .. ...
- pandas教程1:pandas数据结构入门
pandas是一个用于进行python科学计算的常用库,包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单.pandas建造在NumPy之上,它使得以NumPy为中心的应用很容 ...
- 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础
在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...
- 【跟着stackoverflow学Pandas】 -Get list from pandas DataFrame column headers - Pandas 获取列名
最近做一个系列博客,跟着stackoverflow学Pandas. 以 pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序: https://stack ...
- Anaconda中常用的用法
Anaconda中常用的用法 conda 是开源包(packages)和虚拟环境(environment)的管理系统. packages 管理: 可以使用 conda 来安装.更新 .卸载工具包 ,并 ...
随机推荐
- Python-读取文件的大小
1.python读取文件以及文件夹的大小 1. os.path.getsize(file_path):file_path为文件路径 import os os.path.getsize('d:/svn/ ...
- day45 数据库基础
目录 一.存储引擎 二.数据类型 1 整形 2 浮点型 3 字符类型 3.1 类型 3.2 举例验证区别 3.3 对比优缺点 4 日期类型 5 枚举和集合类型 一.存储引擎 不同的存储引擎对应着不同的 ...
- CTF_show平台 web题解 part3
web13 题目显示文件上传,各类型上传均提示错误,在使用ctf-scan扫描的时候,发现upload.php.bak. 查看源码: <?php header("content-typ ...
- 前端08 /jQuery标签操作、事件
前端08 /jQuery标签操作.事件 目录 前端08 /jQuery标签操作.事件 1.标签内文本操作 1.1 html标签元素中的所有内容 1.2 text 标签元素的文本内容 2.文档标签操作 ...
- 微信小程序wx.switchTab跳转到tab页面后onLoad里面的方法不执行
相信大家在做小程序的时候启动页跳转到tab首页会用到switchTab 但是在跳转后发现页面模块不全,后面console.log()后发现是onLoad里面的方法不执行 解决这种问题的方法页有很多中, ...
- 学习Java8系列-Lambda
Lambda演进 小王在公司正在开发一个学生管理系统,产品经理向他提出一个需求,要筛选出年龄大于15的学生,于是小王写出了以下代码: public static List<Student ...
- TortoiseGit 解决冲突的两种方法
一.冲突发生原因: 用户A 有新提交 用户B 没有pull, 写新代码 ,pull , 提示有冲突 Solution: 1: stash save(把自己的代码隐藏存起来) -> 重新pul ...
- DVWA(xss部分源码分析)
前言 DVWA靶场都不陌生,最新学习xss,从新又搞了一遍xss部分,从源码方面康康xss的原因,参考了很多大佬的博客表示感谢,网上也有很多DVWA靶场教程,就水一篇吧. 更多web安全知识欢迎访问: ...
- python学习03-使用动态ua
在写爬虫的时候要使用到浏览器ua 分享一下今天学到的如何使用动态ua的进行爬取 1.简单的爬取网页信息 from urllib.request import urlopen #目标地址 url = & ...
- Python Ethical Hacking - WEB PENETRATION TESTING(1)
WHAT IS A WEBSITE Computer with OS and some servers. Apache, MySQL ...etc. Cotains web application. ...