mad*_*aks 5 python datetime series pandas
数据:
0 09:30:38
1 13:40:27
2 18:05:24
3 04:58:08
4 09:00:09
Run Code Online (Sandbox Code Playgroud)
本质上,我想将其分为三列[小时,分钟,秒]
我已经尝试了以下代码,但似乎都无法正常工作:
train_sample.time.hour
AttributeError: 'Series' object has no attribute 'hour'
train_sample.time.dt.hour
AttributeError: Can only use .dt accessor with datetimelike values
pd.DatetimeIndex(train_sample.time).hour
TypeError: <class 'datetime.time'> is not convertible to datetime
Run Code Online (Sandbox Code Playgroud)
这似乎很简单,但我无法弄清楚。任何帮助将非常感激。
将列表理解与time
s的提取属性一起使用:
import datetime as datetime
df = pd.DataFrame({'time': [datetime.time(9, 30, 38),
datetime.time(13, 40, 27),
datetime.time(18, 5, 24),
datetime.time(4, 58, 8),
datetime.time(9, 0, 9)]})
print (df)
time
0 09:30:38
1 13:40:27
2 18:05:24
3 04:58:08
4 09:00:09
df[['h','m','s']] = pd.DataFrame([(x.hour, x.minute, x.second) for x in df['time']])
Run Code Online (Sandbox Code Playgroud)
或转换为string
s,拆分后转换为int
:
df[['h','m','s']] = df['time'].astype(str).str.split(':', expand=True).astype(int)
print (df)
time h m s
0 09:30:38 9 30 38
1 13:40:27 13 40 27
2 18:05:24 18 5 24
3 04:58:08 4 58 8
4 09:00:09 9 0 9
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5189 次 |
最近记录: |