2016-06-28 137 views
15

DOB列取样值是在格式 - 1/1/2016它默认被转换到对象如下所示如何更改大熊猫的日期时间格式

DOB  object 

转换成日期格式

df['DOB'] = pd.to_datetime(df['DOB']) 

日期转换为

2016-01-26 

dtype

DOB  datetime64[ns] 

现在我想将此日期格式转换为01/26/2016或其他任何常规日期格式。我该怎么做?

无论我尝试什么方法,它总是以2016-01-26格式显示日期。

回答

33

您可以使用dt.strftime,如果需要转换datetime为其他格式,但随后列的dtypeobjectstring):

import pandas as pd 

df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '}}) 
print (df) 
     DOB 
0 26/1/2016 
1 26/1/2016 

df['DOB'] = pd.to_datetime(df.DOB) 
print (df) 
     DOB 
0 2016-01-26 
1 2016-01-26 

df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y') 
print (df) 
     DOB  DOB1 
0 2016-01-26 01/26/2016 
1 2016-01-26 01/26/2016 
+5

“strftime的”转换日期时间列到Unicode的应用上DOB1操作我们再次必须将其转换为日期时间。没有任何其他方式的格式化,而不会丢失data_type? –