我有以下数据:
23:10:50 all 28.36 0.00 0.38 0.25 0.00 71.02
23:10:51 all 22.77 0.00 0.84 0.12 0.00 76.27
23:10:52 all 32.06 0.00 0.86 0.00 0.00 67.08
23:10:53 all 31.38 0.00 0.61 0.00 0.00 68.01
23:10:54 all 27.17 0.00 1.36 0.25 0.00 71.22
23:10:55 all 37.48 0.00 0.75 0.00 0.00 61.77
23:10:56 all 29.02 0.00 0.75 1.76 0.00 68.47
23:10:57 all 41.82 0.00 1.37 0.12 0.00 56.68
23:10:58 all 29.01 0.00 1.10 0.00 0.00 69.89
23:10:59 all 37.00 0.00 1.50 1.88 0.00 59.62
23:11:00 all 44.25 0.00 1.12 0.00 0.00 54.62
23:11:01 all 27.72 0.00 0.62 0.00 0.00 71.66
23:11:02 all 30.71 0.00 1.11 0.00 0.00 68.18
23:11:03 all 27.40 0.00 0.62 0.00 0.00 71.98
...
Run Code Online (Sandbox Code Playgroud)
我用以下方式用熊猫解析:
dateparse = lambda x: pd.datetime.strptime(x, '%H:%M:%S')
data = pd.read_csv('../../data/cpu.dat', delim_whitespace=True, header=None, usecols=[0,2,4,7], names=['Time','User','System','Idle'], parse_dates=[0], date_parser=dateparse)
Run Code Online (Sandbox Code Playgroud)
第一列是 Hour:Minutes:Seconds,我的意图是 pandes 以这种方式解析它。但是它会创建以下内容:
0 1900-01-01 23:10:50
1 1900-01-01 23:10:51
2 1900-01-01 23:10:52
3 1900-01-01 23:10:53
4 1900-01-01 23:10:54
5 1900-01-01 23:10:55
6 1900-01-01 23:10:56
7 1900-01-01 23:10:57
8 1900-01-01 23:10:58
9 1900-01-01 23:10:59
10 1900-01-01 23:11:00
11 1900-01-01 23:11:01
12 1900-01-01 23:11:02
13 1900-01-01 23:11:03
Run Code Online (Sandbox Code Playgroud)
有什么方法可以摆脱添加的年月日?
问候, 马克斯
试试这个,其中timestr包含时间字符串表示的列的名称在哪里:
data['time'] = pd.to_datetime(data['timestr']).dt.time
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5600 次 |
| 最近记录: |