datatime
库还没学完,但我机智地想到时间戳是固定格式,可以将其看做一个字符串,直接修剪字符串长度就能截取到分钟/十分钟/小时。用来计数简直太爽了,只要四行代码!
重点在这一行, 需要对DataFrame的每一行进行操作
ActiveMinute = maintTime['Active-Time'].str[0:16]
文件格式
- 我用的txt文件抽象格式以下,分隔符是多个空格
\s+
title1 title2 title3
data11 data21 data31
data12 data22 data32
data13 data23 data33
为了好看一点,抽象为表格。
title1 | title2 | title3 |
---|---|---|
data11 | data21 | data31 |
data12 | data22 | data32 |
data13 | data23 | data33 |
我需要处理的时间戳序列为
Active-Time
2018-07-19,06:09:59
2018-07-22,22:06:03
2018-07-19,11:09:29
2018-07-07,04:13:29
在ipython交互操作的代码,注意文件路径
import pandas as pd
# 读取txt文件格式的数据,分隔符为多个空号(正则式)
maint = pd.read_table('ch08/CM-maintenance.txt',sep='\s+')
# 转变为DataFrame格式
maintTime = pd.DataFrame(maint)
# 原格式为 “2018-07-07,04:13:29”,截取到分钟,改长度就能截取到你想要的长度
ActiveMinute = maintTime['Active-Time'].str[0:16]
In [121]: ActiveMinute[:5]
Out[121]:
0 2018-07-19,06:09
1 2018-07-22,22:06
2 2018-07-19,11:09
3 2018-07-07,04:13
4 2018-07-20,05:52
Name: Active-Time, dtype: object
# 直接计数,排序,显示想看的前几行
In [124]: ReactiveCMcount = ActiveMinute.value_counts(ascending=False)
In [125]: ReactiveCMcount[:5]
Out[125]:
2018-07-20,05:30 721
2018-07-20,06:01 671
2018-07-20,05:54 604
2018-07-19,05:45 599
2018-07-20,06:00 543
Name: Active-Time, dtype: int64
2018.8.20 超快,超好用!python拯救时间。
网友评论