仅解析小时:分钟:秒使用熊猫

Max*_*son 4 python pandas

我有以下数据:

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)

有什么方法可以摆脱添加的年月日?

问候, 马克斯

Pet*_*ler 7

试试这个,其中timestr包含时间字符串表示的列的名称在哪里:

data['time'] = pd.to_datetime(data['timestr']).dt.time
Run Code Online (Sandbox Code Playgroud)

  • 相同的想法:只需更改`dateparse = lambda x: pd.datetime.strptime(x, '%H:%M:%S').time()`。 (2认同)