美文网首页
记录第 18 天:数据分析(时间分析)

记录第 18 天:数据分析(时间分析)

作者: 哼哼哼哼哼哼哼哼哼哼哼哼哼哼哼 | 来源:发表于2020-09-23 09:57 被阅读0次

今天又是数据分析的一天。

今天要是分析费用报销流程用时情况。碰到的第一个问题是对原用时字段列的重命名。我记得应该是用 rename,方法, 于是去查了一下相关资料。


df.rename (index = index_mapper, columns = columns_mapper)

例: df.rename (columns = {old.name : new.name})


其中的 mapper 是一个字典型数据, mapper 中文为映射,挺稀奇,因为我之前还没用过字典型参数呢。

同时我还意外发现,除了用。axis 的值除了可以填 0 或者 1,用 "columns" 和 ”index"也可以。其中用 “columns” 时,代表生成计算列,"index" 代表生成计算行,挺好的,这个很直观。

接下来是关于 pandas 中的一些时间计算。pandas 中的时间数据类型主要是两种:datetime 和 timedelta。

首先是 date time 类型,pandas 针对 datetime 有很多便捷操作,但在了解这些之前我还是先

了解下如何把数据转化为 date time 类型。通过查阅资料我发现,可以用 Pd.to_datetime() 的方法将数据转为 date time 类型。在这个方法里,pandas 能智能识别所给数据的日期格式,但是如果所给数据的日期格式比较罕见,就要自己设置 format 参数,告诉 pandas 正确的时间格式,相关参数包括


年,月,日:%Y,% m,%d

时,分,秒:%H,%M,%S

例: "%Y-%m-%d:%H%M%S",代表 年-月-日:时-分-秒 的格式。


一旦转化成功,pandas 对 datetime 的运用方式是很多的。当 index 为 datetimes 类型时,可以进行时间索­引: [“year-month-day_1":"Year_month_day_2"]

当 values 为 date_times 类型时,可以用 dt 接口进­行时间计算。这里在调用 dt 接口时有一点容易忽略,就是要记得像 dt,str 这种接口是针对 Series 使用的,并非针对 DataFrame 使用的。随后我查到了一些 dt 的使用方法。


提取年月日: dt.year,dt.month, dt.day

提取时分秒: dt.hour,dt.minute,dt.second

星期(数字版): dt.weekday (周一为 0)

星期(文字版):dt.day_name() (周一为 Monday)

季度: dt.quarter

转为格式化字符:dt.strftime()


然后是 timedelta 类型。

timedelta 是两个 datetime 的差额,获取 timedelta 有两种方式,一是用两个 datetime 相减,二是直接构造,构造代码是 

pd.to_timedelta (data, unit: None)

to_timedelta 方法没有 to_datetime,那么方便,每一次都需要人工指定 data 的时间间隔单位。常用单位是

D/day, H/hour,minute,second 等

构造好 timedelta 之后,在后续代码中可以对它进行提取计算,目前我所掌握的就两种方法:


Series. dt.days

Series.dt.total_seconds()


今天的数据分析工作就到这里了,主要是 pandas 时间数据的一些处理方式,以及 df 列的映射重命名方式。

此外今天还有一个小发现,就是在使用 Jupiter Notebook 敲代码的时候,可以按 Tab 键进行联想补全,可以补全方法和变量名, 以后多试试用几次吧,看看好不好用。

ok,休息去

(图片来自于互联网:图片来源) 

相关文章

网友评论

      本文标题:记录第 18 天:数据分析(时间分析)

      本文链接:https://www.haomeiwen.com/subject/ypjnyktx.html