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,}
- 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ệ.
- Nếu ‘ép buộc, thì phân tích cú pháp không hợp lệ sẽ được đặt là nan.
- 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. 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: 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. 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: 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.Mã định dạng DateTime
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]
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"]
2Phươ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.
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