如何分割日期和时间并创建单独的列(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:18I 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]更多推荐
发布评论