2016-06-28 25 views
15

DOB giá trị mẫu cột được ghi theo dạng - 1/1/2016 mà theo mặc định được chuyển đổi sang đối tượng như hình dưới đâyLàm thế nào để thay đổi định dạng datetime trong gấu trúc

DOB  object 

Chuyển đổi sang định dạng ngày

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

ngày chuyển đổi thành

2016-01-26 

dtype

DOB  datetime64[ns] 

Bây giờ tôi muốn chuyển đổi định dạng ngày này thành 01/26/2016 hoặc ở bất kỳ định dạng ngày tháng chung nào khác. Tôi phải làm nó như thế nào?

Bất kể phương pháp nào tôi thử nó luôn hiển thị ngày ở định dạng 2016-01-26.

Trả lời

33

Bạn có thể sử dụng dt.strftime, nếu cần chuyển đổi datetime sang các định dạng khác, nhưng sau đó dtype của cột là object (string):

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' chuyển đổi cột datetime sang Unicode để áp dụng hoạt động trên DOB1 chúng tôi một lần nữa phải chuyển đổi nó thành datetime. Không có cách nào khác để hình thành mà không làm mất data_type? –

Các vấn đề liên quan