从列中提取子字符串

时间:2020-05-18 05:38:51

标签: python dataframe substring

我正在尝试从整个data + time列df ['开始时间']中提取小时。有什么简单的方法可以使用str.extract()吗?任何支持表示赞赏!

    Start Time             
2019-01-14 07:42:00    
2019-01-14 05:29:00    
2019-01-14 08:01:00    
2019-01-18 04:20:00  
2019-01-14 05:30:00   
       ... 
2018-04-09 10:15:33   
2018-12-14 06:36:46     
2018-04-11 07:51:24    

我尝试过:

df['Start Hour'] = df['Start Time'].str.split(' ', 1)

输出

    Start Time             
2019-01-14   
2019-01-14  
2019-01-14    
2019-01-18  
2019-01-14  
       ... 
2018-04-09    
2018-12-14    
2018-04-11 

所需的输出

    Start Time             
07
05 
08  
04
05
   ... 
10
06  
07

2 个答案:

答案 0 :(得分:0)

将您的值转换为pandas datetime对象,并提取小时:

df['Hour'] = df['Start Time'].apply(lambda x: pd.to_datetime(x).hour)

答案 1 :(得分:0)

尝试一下,

pd.to_datetime(df['Start Time'], format="%Y-%m-%d %H:%M:%S").dt.hour

series.dt