Hướng dẫn convert object to datetime date python - chuyển đổi đối tượng thành datetime date python

21

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Dưới đây là hàng đầu tiên của cột DateTime CSV của tôi:

Mon Nov 02 20:37:10 GMT+00:00 2015

Cột DateTime hiện là một đối tượng và tôi muốn chuyển đổi nó thành định dạng DateTime để tôi có thể có ngày xuất hiện dưới dạng 2015-11-02 và tôi sẽ tạo một cột riêng cho thời điểm đó.

Mã tôi đang sử dụng để chuyển đổi cột cho đến định dạng thời gian là:

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]

Tôi nhận được lỗi này:

> TypeError: must be str, not Series

Mọi sự trợ giúp sẽ rất được trân trọng!

Hỏi ngày 12 tháng 7 năm 2016 lúc 16:04Jul 12, 2016 at 16:04

2

Sử dụng pd.to_datetime[]:

df['DateTime'] = pd.to_datetime[df['DateTime']]

Ví dụ,

pd.to_datetime['Mon Nov 02 20:37:10 GMT+00:00 2015']

Sản xuất Timestamp['2015-11-02 20:37:10'].

Đã trả lời ngày 12 tháng 7 năm 2016 lúc 16:08Jul 12, 2016 at 16:08

1

Một giải pháp khác là chuyển tham số lỗi như bên dưới và ứng dụng của nóerrors parameter as per below and its application

df ['dateTime'] = pd.to_dateTime [df ['dateTime'], error = 'comerce']]

Lỗi {‘Bỏ qua,‘ Nâng cao, ‘Coerce,}

  1. Nếu ‘nâng cao, thì phân tích cú pháp không hợp lệ sẽ tăng một ngoại lệ.
  2. Nếu ‘ép buộc, thì phân tích cú pháp không hợp lệ sẽ được đặt là nan.
  3. Nếu ‘bỏ qua, thì phân tích cú pháp không hợp lệ sẽ trả về đầu vào.

Đã trả lời ngày 8 tháng 9 lúc 9:26Sep 8 at 9:26

BabulalbabulalBabulal

3213 Huy hiệu bạc11 Huy hiệu đồng3 silver badges11 bronze badges

Khi bạn nhận được ngày từ dữ liệu thô, chúng thường ở dạng các đối tượng chuỗi. Nhưng trong hình thức này, bạn không thể truy cập các thuộc tính của ngày như năm, tháng, v.v.

Giải pháp cho vấn đề này là phân tích [hoặc chuyển đổi] đối tượng chuỗi thành đối tượng DateTime để Python có thể nhận ra nó là một ngày. Và sau đó bạn có thể trích xuất bất kỳ thuộc tính cơ bản nào bạn muốn nhận được từ nó.

Hướng dẫn này sẽ dạy bạn cách chuyển đổi một chuỗi thành đối tượng DateTime trong Python. Không cần phải cố gắng nữa, hãy bắt đầu.

Mã định dạng DateTime

Trước khi chúng tôi tìm hiểu cách chuyển đổi chuỗi thành ngày, bạn nên hiểu các mã định dạng của các đối tượng DateTime trong Python.

Những điều kiện tiên quyết này sẽ hữu ích bất cứ khi nào bạn cần chuyển đổi một chuỗi thành một ngày. Chúng tôi sẽ xem xét một số mã định dạng phổ biến nhất mà bạn sẽ làm việc với bất cứ lúc nào bạn muốn chuyển đổi chuỗi cho đến nay.

Dưới đây là một số phổ biến nhất:

  • %Y - điều này được sử dụng để đại diện cho năm và nó dao động từ 0001 đến 9999
  • %m - Điều này được sử dụng để đại diện cho tháng của một năm và nó dao động từ 01 đến 12.
  • %d - & nbsp; điều này được sử dụng để đại diện cho các ngày trong tháng và dao động từ 01 đến 31.
  • %H-Điều này được sử dụng để đại diện cho giờ trong ngày ở định dạng 24 giờ và dao động từ 00 đến 23.
  • %I - Điều này được sử dụng để đại diện cho giờ trong ngày ở định dạng 12 giờ và dao động từ 01 đến 12.
  • %M - Điều này được sử dụng để biểu thị vài phút trong một giờ và dao động từ 00 đến 59.
  • %S - Điều này được sử dụng để thể hiện vài giây trong một phút và cũng từ 00 đến 59.

Chúng tôi sẽ dừng ở đây để biết mã định dạng ngày, nhưng có nhiều thứ nữa trong tài liệu Python. Bạn có thể bấm vào đây để xem thêm.

Lưu ý rằng điều đầu tiên cần xem xét bất cứ khi nào chuyển đổi một chuỗi cho đến nay là đảm bảo rằng chuỗi ở định dạng phù hợp.

Để chuyển đổi một chuỗi thành một ngày, nó phải đáp ứng các điều kiện sau.

  • Đầu tiên, mỗi phần tử trong chuỗi phải được tách ra khỏi các phần tử khác bằng một không gian, chữ cái hoặc ký hiệu như / &, % # - v.v.
  • Phần tử trong chuỗi được phân tích cú pháp là năm, tháng hoặc ngày phải có cùng độ dài với mã định dạng. Phần tử trong chuỗi không được vượt quá phạm vi của mã định dạng. Ví dụ: mã %y yêu cầu 4 số phải được thông qua là năm và phạm vi của nó là 0001 - 9999 [ví dụ, 09, sẽ không hoạt động - bạn cần 2009].

Hãy xem xét một số ví dụ về chuyển đổi chuỗi sang thời gian. Đầu tiên, chúng tôi sẽ chuyển đổi chuỗi "2019/08/09" thành ngày.

Chúng ta cần nhập thư viện DateTime trong Python để có thể đạt được điều này. Chúng ta có thể làm điều đó bằng cách gõ những điều sau:

from datetime import datetime

date_string = "2018/08/09"

format = %Y/%m/%d #specifify the format of the date_string.

date = datetime.strptime[date_string, format]
print[date]

Hãy xem lại mã trên để đảm bảo chúng ta hiểu những gì đang xảy ra.

Biến định dạng khai báo định dạng của chuỗi ngày sẽ được chuyển cho trình phân tích cú pháp [hàm sẽ giúp chúng tôi chuyển đổi ngày]. Chúng ta phải nhận thức được định dạng trước thời hạn, đó là trước khi chúng ta chuyển nó cho trình phân tích cú pháp.

Trong trường hợp này, chuỗi ở định dạng "2019/08/09".

Phần tử đầu tiên trong chuỗi đại diện cho một năm, trong đó mã định dạng là %Y. Sau đó, chúng tôi có một dấu gạch chéo phía trước theo tháng, trong đó mã định dạng là ____10. Sau đó, chúng tôi có một chém phía trước khác, và cuối cùng là ngày mà mã định dạng là

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
1.

Do đó, chúng ta phải bao gồm biểu tượng chém phía trước trong biến định dạng giống như cách nó xuất hiện trong chuỗi. Nếu mọi thứ được thực hiện chính xác, định dạng phải là

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
2

Phương pháp

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
3 là trình phân tích cú pháp sẽ giúp chúng tôi chuyển đổi
for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
4 mà chúng tôi đã chuyển vào đó là một ngày. Nó yêu cầu hai tham số: chuỗi ngày và định dạng.

Khi chúng tôi in nó sau đó, nó sẽ trông như thế này.

Hình ảnh của tác giả

Chúng tôi có thể quyết định lấy bất kỳ thuộc tính nào chúng tôi muốn từ nó. Ví dụ, nếu chúng ta muốn có được năm, chúng ta có thể làm điều đó bằng cách gõ

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
5 và nó sẽ in ra chỉ trong năm.

Bây giờ chúng ta đã hiểu rằng, hãy để Lừa đi qua một ví dụ khác phức tạp hơn ở trên.

Ví dụ - Cách chuyển đổi chuỗi thành ngày

Chúng tôi sẽ chuyển đổi đối tượng chuỗi này thành một ngày:

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
6.

Bây giờ từ vẻ ngoài của nó, chúng ta có thể thấy rằng chuỗi ngày này có năm, tháng, ngày, giờ, phút và giây. Vì vậy, tất cả những gì chúng ta cần làm là tạo định dạng thích hợp và các biểu tượng trong đó.

from datetime import datetime

date_string = "2018-11-15T02:18:49Z"

format = "%Y-%m-%dT%H:%M:%SZ

date = datetime.strptime[date_string, format]
print[date]

Chúng ta có thể thấy rằng không có gì quá phức tạp về nó. Chỉ cần làm theo định dạng cho từng phần của ngày và cũng vượt qua bất kỳ ký hiệu hoặc chữ cái tương ứng nào bạn tìm thấy trong chuỗi ngày.

Không bị phân tâm bởi các biểu tượng hoặc chữ cái trong chuỗi. Nếu bạn làm mọi thứ một cách chính xác và in nó, bạn nên có một cái gì đó như thế này:

Hãy chắc chắn rằng bạn không nhầm lẫn mã định dạng

for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
0 với
for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
8.
for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
0 nhỏ được sử dụng trong nhiều tháng trong khi
for item, frame in df['DateTime'].iteritems[]:
     datetime.datetime.strptime[df['DateTime'], "%a-%b-%d-%H-%M-%S-%Z-%Y"]
8 lớn được sử dụng trong vài phút.

Kết luận và học thêm

Bây giờ chúng tôi đã đến cuối hướng dẫn này. Bạn đã học cách chuyển đổi một chuỗi thành định dạng ngày.

Một khi bạn tìm hiểu mã định dạng, bạn sẽ tốt để đi. Chỉ cần đảm bảo rằng bạn tuân thủ các nguyên tắc điều chỉnh loại chuỗi nào có thể được chuyển đổi.

Chẳng hạn, bạn phải nhớ rằng chuỗi phải được phân tách bằng một cái gì đó có thể là một không gian, chữ cái hoặc ký hiệu. Ngoài ra, phạm vi chuỗi không được lớn hơn hoặc nhỏ hơn phạm vi của mã định dạng.

Cảm ơn bạn đã đọc.

Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để biến một đối tượng thành một DateTime trong Python?

Cột ngày thực sự là một chuỗi, mà hồi tưởng, được biểu thị là một loại đối tượng trong Python. Bạn có thể chuyển đổi nó thành loại DateTime bằng phương thức .to_dateTime [] trong gấu trúc.with the . to_datetime[] method in pandas .

Làm cách nào để thay đổi một đối tượng đến nay?

Sử dụng phương thức pandas.to_dateTime [] được sử dụng để thay đổi thời gian chuỗi/thời gian đối tượng cho đến ngày [DateTime64 [ns]]. Phương pháp này đủ thông minh để thay đổi các định dạng khác nhau của cột Ngày chuỗi cho đến nay. Năng suất dưới đầu ra. Lưu ý rằng DTYPE của cột chèn đã thay đổi thành DateTime64 [ns] từ loại đối tượng. to_datetime[] method is used to change String/Object time to date type [datetime64[ns]]. This method is smart enough to change different formats of the String date column to date. Yields below output. Note that the dtype of InsertedDate column changed to datetime64[ns] from object type.

Strptime trong Python là gì?

Phương thức thời gian Python Strptime [] phân tích một chuỗi đại diện cho một thời gian theo định dạng.Giá trị trả về là một struct_time như được trả về bởi gmtime [] hoặc localtime [].parses a string representing a time according to a format. The return value is a struct_time as returned by gmtime[] or localtime[].

Làm cách nào để sử dụng Strptime trong Python?

Hàm strptime [] trong python được sử dụng để định dạng và trả về một biểu diễn chuỗi ngày và giờ.Nó mất vào ngày, thời gian hoặc cả hai dưới dạng đầu vào và phân tích cú pháp nó theo các chỉ thị được đưa ra cho nó.Nó tăng giá trịerror nếu chuỗi không thể được định dạng theo các chỉ thị được cung cấp.used to format and return a string representation of date and time. It takes in the date, time, or both as an input, and parses it according to the directives given to it. It raises ValueError if the string cannot be formatted according to the provided directives.

Bài Viết Liên Quan

Chủ Đề