2013-06-16 55 views

Trả lời

214

Cách đơn giản nhất là sử dụng to_datetime:

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

Nó cũng cung cấp một cuộc tranh luận dayfirst cho lần châu Âu (nhưng hãy cẩn thận this isn't strict).

Đây là nó trong hành động:

In [11]: pd.to_datetime(pd.Series(['05/23/2005'])) 
Out[11]: 
0 2005-05-23 00:00:00 
dtype: datetime64[ns] 

Bạn có thể vượt qua một cụ format:

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y") 
Out[12]: 
0 2005-05-23 
dtype: datetime64[ns] 
+0

cảm ơn bạn đã phát lại, tôi có thể xác định định dạng của nó không? như '% d /% m /% Y'? rất được đánh giá cao – perigee

+0

Vâng, nó tuyên bố có tùy chọn đó nhưng tôi nghĩ rằng điều này bị bỏ qua. : s –

+0

nó hoạt động, chuỗi định dạng hoạt động, cảm ơn bạn rất nhiều – perigee

6

Nếu cột ngày của bạn là một chuỗi các định dạng '2017/01/01' bạn có thể sử dụng gấu trúc astype để chuyển đổi nó thành datetime.

df['date'] = df['date'].astype('datetime64[ns]')

hoặc sử dụng datetime64 [D] nếu bạn muốn ngày chính xác và không nano giây

print(type(df_launath['date'].iloc[0]))

sản lượng

<class 'pandas._libs.tslib.Timestamp'> giống như khi bạn sử dụng pandas.to_datetime

Bạn có thể dùng thử với các định dạng sau đó là '% Y-% m-% d' nhưng ít nhất là công việc này.

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