{DAY 24} Pandas 学习笔记part.10

前言

前面学习了很多pandas的功能

在标签的处理上还有资料的分析上也有进行介绍跟实际资料的演练

今天要练习的是更适用在真实应用场景的用法
关於日期与时间的处理

在时间序列的表达上

pandas内建也有可以将时间依照指定样式显示的方法

就可以省去另外写好几行程序码的困扰

让程序码更简洁有力

这里同样也是使用kaggle上的开源数据

利用不同的语法进行资料的操作

Kaggle: Your Machine Learning and Data Science Community

日期与时间的处理

在日期与时间处理的部分

会使用到kaggle上这笔关於比特币的资料

首先先看看这笔资料长怎样

import pandas as pd
df = pd.read_csv("Bitcoin.csv")
df.head()

可以看到时间的排序是日期-月份-年份

但是这个要解读起来很复杂

现在假如想让时间排得更好看,

可以使用pandas的pd.to_datetime(),

要注意的是需要在括号里放置想要转换的时间栏位

pd.to_datetime(df.Date)

可以看到内建的功能将时间换成年份-日期-月份

看起来还是怪怪的,因为应该要把排列显示出year-month-day

这时候就可以指定时间出现的形式,使用format指定

这时的形式是to_datetime(dateString,format)

现在来试试指定format针对时间进行调整

df["Date"] = pd.to_datetime(df["Date"], format="%d-%m-%Y")
df.head()

那先来看看整笔数据的相关描述性统计数据

可以看到整体数据有2965笔

是从2013/04/28开始到2021/06/09的所有纪录

若是我只想要撷取从2020/01/01到最後一笔纪录2021/06/09的资料时

有下列几种方法

  1. 首先是使用dt.year.isin( )

    括号内可以放置指定的条件

    因为这个时间段是从去年第一天开始到资料的最後一笔

    所以可以用年份下去处里

    df = df[df["Date"].dt.year.isin([2020,2021]).dropna()]
    df
    

    可以看到成功的将想要的时间撷取出来

    rows的数量也从原本的2965变成撷取後的526

    但这个处理的是以年计算

    若是现在想要撷取更精确的时间段

  2. 第二个方法可以使用布林遮罩跟比较运算元

    找出更精确的时间段

    假设现在想要从2019/05/03到2020/12/27

    df[(df['Date'] >= '2019-05-03') & (df['Date'] <= '2020-12-27')]
    

  3. 假如想要从2020/07/18到2021/04/25

    可以先将Date栏位转换为index

    在使用loc[]将想要的时间段slice出来

    df = df.set_index("Date")
    df
    

    先将index转换为时间

    再将想要的时间段放到中括号的条件内

    df.loc["2021-04-25":"2020-07-18"]
    

    可以看到时间段成功撷取2020/07/18到2021/04/25


<<:  Day 23 AWS的云上排队服务-SQS

>>:  Day24-D3 基础图表:堆叠长条图

ASP.NET MVC 从入门到放弃(Day24)-MVC删除资料介绍

接下来讲讲删除 部分... 在查询的View那边可以看到下方程序码 @Html.ActionLink...

Powershell 入门之管道和文件重定向

今天我们就来一起看看 powershell 中的管道符,使用 “|” 表示. 我们先来看两个命令: ...

Day13 - this&Object Prototypes Ch3 Objects - Contents - Existence - Enumeration 作者建议

使用 in 搭配 for 时, array 内所有 enumerable 为 true 的 prop...

Day 23:「儿子,这是你的零用钱」- 元件间的资料传递

兔大夫: 「请问是兔豪的家属吗?」 兔豪爸: 「是,我就是。 请问我鹅子他...」 兔大夫: 「抱...

Day 0xE UVa10812 Beat the Spread!

Virtual Judge ZeroJudge 题意 输入比赛的分数总和及分差,输出两队分数 需要...