问题描述
>> s
0 NaT
3 23:00:42
26 NaT
53 23:58:58
89 01:06:27
...
20215 NaT
20217 NaT
20239 23:28:38
20246 NaT
20270 NaT
s.dropna()
3 23:00:42
53 23:58:58
89 01:06:27
97 01:18:36
195 05:43:07
...
20132 19:21:20
20141 20:08:01
20152 20:21:01
20199 22:25:50
20239 23:28:38
现在我尝试从系列中获取时间,但不知道该怎么做。
解决方法
如果 s
是 Series
则使用将值转换为日期时间,然后提取小时数:
s = pd.to_datetime(s.astype(str)).dt.hour
或者获取前 2 个值并转换为浮点数:
s = s.str[:2].astype(float)
如果使用列:
df['hour'] = pd.to_datetime(df['col'].astype(str)).dt.hour
或者:
df['hour'] = df['col'].str[:2].astype(float)
,
试试这个:
s['hour'] = s['time'].apply(lambda x: x[3:5])
,
有很多方法。我会这样做:
s = pd.Series(pd.to_datetime(x).hour for x in s)