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 中的一些用法!的更多相关文章

  1. Pandas: 如何将一列中的文本拆分为多行? | Python

    Pandas: 如何将一列中的文本拆分为多行? 在数据处理过程中,经常会遇到以下类型的数据: 在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行. 在上图中,列名 ...

  2. mysql基础(2)-数据处理(mysql+pandas)

    插入语句insert insert  数据表名(字段名...) values(字段值): 例 : insert into new_student values("张"," ...

  3. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  4. python之pandas学习笔记-初识pandas

    初识pandas python最擅长的就是数据处理,而pandas则是python用于数据分析的最常用工具之一,所以学python一定要学pandas库的使用. pandas为python提供了高性能 ...

  5. Python:pandas(二)——pandas函数

    Python:pandas(一) 这一章翻译总结自:pandas官方文档--General functions 空值:pd.NaT.np.nan //判断是否为空 if a is np.nan: .. ...

  6. pandas教程1:pandas数据结构入门

    pandas是一个用于进行python科学计算的常用库,包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单.pandas建造在NumPy之上,它使得以NumPy为中心的应用很容 ...

  7. 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

    在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...

  8. 【跟着stackoverflow学Pandas】 -Get list from pandas DataFrame column headers - Pandas 获取列名

    最近做一个系列博客,跟着stackoverflow学Pandas. 以 pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序: https://stack ...

  9. Anaconda中常用的用法

    Anaconda中常用的用法 conda 是开源包(packages)和虚拟环境(environment)的管理系统. packages 管理: 可以使用 conda 来安装.更新 .卸载工具包 ,并 ...

随机推荐

  1. 2020/7/6博客日报Java的开始--pthread的安装

    1.今天进行了Java环境的安装,安装eclipse之后学习了eclipse的使用方法,如何建立项目,并完成了最基本的Java hello的运行: 今天是Java的开端,开始进入Java编程: 今天了 ...

  2. 虚拟机 - 桥接模式下,虚拟网卡没有 ip

    背景 Linux 虚拟机,用桥接模式,敲 ifconfig命令,ens33 没有 ip 即没有红色圈住那部分 解决方案 修改配置文件 vim /etc/sysconfig/network-script ...

  3. CSS(五)- 背景与边框 - 边框圆角与阴影基础用法

    扩展阅读 本文仅仅做border的基础使用,想要深入了解的话可以戳以下几个链接,觉得作者写的很好. CSS Backgrounds and Borders Module Level 3 CSS魔法堂: ...

  4. 【DevCloud · 敏捷智库】两种你必须了解的常见敏捷估算方法

    背景 在某开发团队辅导的回顾会议上,团队成员对于优化估计具体方法上达成了一致意见.询问是否有什么具体的估计方法来做估算. 问题分析 回顾意见上大家对本次Sprint的效果做回顾,其中80%的成员对于本 ...

  5. HTB::Postman

    实验环境 渗透过程 0x01 信息搜集 masscan扫描 扫描结果目标服务开放了22(ssh),80(http),6379(redis),10000(webmin)端口 nmap扫描 nmap -s ...

  6. 数据可视化之powerBI技巧(九)PowerBI按周进行业务分析的思路

    按周进行数据分析,在零售业.电商等类型的公司中很常见,但是不少人觉得按周进行分析无从下手,一个主要的原因是找不到对应的函数,因为时间智能函数只对应年.季.月.天这几个粒度,没有关于周的时间智能函数. ...

  7. 数据可视化之分析篇(八)Power BI数据分析应用:结构百分比分析法

    https://zhuanlan.zhihu.com/p/113113765 PowerBI数据分析02:结构百分比分析法 作者:海艳 结构百分比分析法,又称纵向分析,是指同一期间财务报表中不同项目间 ...

  8. .NET 开源项目 StreamJsonRpc 介绍[下篇]

    阅读本文大概需要 9 分钟. 大家好,这是 .NET 开源项目 StreamJsonRpc 介绍的最后一篇.上篇介绍了一些预备知识,包括 JSON-RPC 协议介绍,StreamJsonRpc 是一个 ...

  9. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  10. 学习jvm(一)--java内存区域

    前言 通过学习深入理解java虚拟机的教程,以及自己在网上的查询的资料,做一个对jvm学习过程中的小总结. 本文章内容首先讲解java的内存分布区域,之后讲内存的分配原则以及内存的监控工具.再下来会着 ...