python pandas 修剪字符串长度(时间戳截取到分钟)

datatime库还没学完,但我机智地想到时间戳是固定格式,可以将其看做一个字符串,直接修剪字符串长度就能截取到分钟/十分钟/小时。用来计数简直太爽了,只要四行代码!

重点在这一行, 需要对DataFrame的每一行进行操作

ActiveMinute = maintTime['Active-Time'].str[0:16]

文件格式

  1. 我用的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拯救时间。

你可能感兴趣的:(python pandas 修剪字符串长度(时间戳截取到分钟))