2017-05-11 7 views
0

DATE_H_REALを分割して2つの列を作成したい。日付と1時間1、私はこの使用します。日付と時間を分割して別々の列を作成する方法

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 
+0

エラーは何ですか。 – mtkilic

+0

strptime()引数1は、Seriesでなくstrでなければなりません –

答えて

1

のように見えるが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] 
関連する問題