如何分割日期和时间并创建单独的列(how to split date and time and create separate columns)

编程入门 行业动态 更新时间:2024-10-25 12:27:05
如何分割日期和时间并创建单独的列(how to split date and time and create separate columns)

我想拆分DATE_H_REAL并创建两列。 一个日期和一个小时,我用这个:

from datetime import datetime df_picru = datetime.strptime(df_picru['DATE_H_REAL'], '%Y-%m-%d %H:%M:%S') df_picru['day'] = df_picru.strftime('%Y-%m-%d') df_picru['hour'] = df_picru.strftime('%H:%M:%S')

我的数据看起来像这样

0 NaN 1 NaN 2 NaN 3 02/02/2016 16:16 4 02/02/2016 16:17 5 02/02/2016 16:18

I want to split DATE_H_REAL and create two columns. one for date and one hour, i use this :

from datetime import datetime df_picru = datetime.strptime(df_picru['DATE_H_REAL'], '%Y-%m-%d %H:%M:%S') df_picru['day'] = df_picru.strftime('%Y-%m-%d') df_picru['hour'] = df_picru.strftime('%H:%M:%S')

My data look like this

0 NaN 1 NaN 2 NaN 3 02/02/2016 16:16 4 02/02/2016 16:17 5 02/02/2016 16:18

最满意答案

在pandas中需要to_datetime + Series.dt.strftime - 如果需要输出为strings :

df_picru = pd.DataFrame({'DATE_H_REAL':['02/02/2016 16:16', '02/02/2016 16:17', np.nan]}) df_picru['DATE_H_REAL'] = pd.to_datetime(df_picru['DATE_H_REAL']) df_picru['day'] = df_picru['DATE_H_REAL'].dt.strftime('%Y-%m-%d') df_picru['hour'] = df_picru['DATE_H_REAL'].dt.strftime('%H:%M:%S') print (df_picru) DATE_H_REAL day hour 0 2016-02-02 16:16:00 2016-02-02 16:16:00 1 2016-02-02 16:17:00 2016-02-02 16:17:00 2 NaT NaT NaT print (type(df_picru.loc[0, 'day'])) <class 'str'> print (type(df_picru.loc[0, 'hour'])) <class 'str'> print (df_picru['DATE_H_REAL'].dtypes) datetime64[ns]

或者Series.dt.date + Series.dt.time如果需要输出python date和python time :

df_picru['DATE_H_REAL'] = pd.to_datetime(df_picru['DATE_H_REAL']) df_picru['day'] = df_picru['DATE_H_REAL'].dt.date df_picru['hour'] = df_picru['DATE_H_REAL'].dt.time print (df_picru) DATE_H_REAL day hour 0 2016-02-02 16:16:00 2016-02-02 16:16:00 1 2016-02-02 16:17:00 2016-02-02 16:17:00 2 NaT NaN NaN print (type(df_picru.loc[0, 'day'])) <class 'datetime.date'> print (type(df_picru.loc[0, 'hour'])) <class 'datetime.time'> print (df_picru['DATE_H_REAL'].dtypes) datetime64[ns]

In pandas need to_datetime + Series.dt.strftime - if need output as strings:

df_picru = pd.DataFrame({'DATE_H_REAL':['02/02/2016 16:16', '02/02/2016 16:17', np.nan]}) df_picru['DATE_H_REAL'] = pd.to_datetime(df_picru['DATE_H_REAL']) df_picru['day'] = df_picru['DATE_H_REAL'].dt.strftime('%Y-%m-%d') df_picru['hour'] = df_picru['DATE_H_REAL'].dt.strftime('%H:%M:%S') print (df_picru) DATE_H_REAL day hour 0 2016-02-02 16:16:00 2016-02-02 16:16:00 1 2016-02-02 16:17:00 2016-02-02 16:17:00 2 NaT NaT NaT print (type(df_picru.loc[0, 'day'])) <class 'str'> print (type(df_picru.loc[0, 'hour'])) <class 'str'> print (df_picru['DATE_H_REAL'].dtypes) datetime64[ns]

Or Series.dt.date + Series.dt.time if need output python date and python time:

df_picru['DATE_H_REAL'] = pd.to_datetime(df_picru['DATE_H_REAL']) df_picru['day'] = df_picru['DATE_H_REAL'].dt.date df_picru['hour'] = df_picru['DATE_H_REAL'].dt.time print (df_picru) DATE_H_REAL day hour 0 2016-02-02 16:16:00 2016-02-02 16:16:00 1 2016-02-02 16:17:00 2016-02-02 16:17:00 2 NaT NaN NaN print (type(df_picru.loc[0, 'day'])) <class 'datetime.date'> print (type(df_picru.loc[0, 'hour'])) <class 'datetime.time'> print (df_picru['DATE_H_REAL'].dtypes) datetime64[ns]

更多推荐

本文发布于:2023-07-08 20:10:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1080304.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日期   时间   split   date   columns

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!