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

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

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

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

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

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

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

BabulalbabulalBabulal

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

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

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ướng dẫn convert object to datetime python - chuyển đổi đối tượng thành trăn datetime
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ướng dẫn convert object to datetime python - chuyển đổi đối tượng thành trăn datetime

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 để xâu chuỗi một ngày trong Python?

Phương thức strftime () trả về một chuỗi đại diện cho ngày và thời gian bằng cách sử dụng đối tượng ngày, thời gian hoặc dữ liệu.strftime() method returns a string representing date and time using date, time or datetime object.

Làm thế nào để bạn chuyển đổi một đối tượng thành một chuỗi trong Python?

Python là tất cả về các đối tượng do đó các đối tượng có thể được chuyển đổi trực tiếp thành các chuỗi bằng các phương thức như str () và repr ().Phương thức str () được sử dụng để chuyển đổi tất cả các đối tượng tích hợp thành chuỗi.Tương tự, phương thức repr () như một phần của phương thức chuyển đổi đối tượng cũng được sử dụng để chuyển đổi một đối tượng trở lại một chuỗi.str() and repr(). Str() method is used for the conversion of all built-in objects into strings. Similarly, repr() method as part of object conversion method is also used to convert an object back to a string.

Làm cách nào để chuyển đổi một chuỗi thành dấu thời gian trong Python?

Nhập thư viện DateTime.Sử dụng DateTime.Lớp DateTime để xử lý các kết hợp ngày và thời gian.Sử dụng phương thức Strptime để chuyển đổi một chuỗi DateTime thành một đối tượng DateTime.Use the strptime method to convert a string datetime to a object datetime.