Pandas thay đổi định dạng ngày thành yyyy-mm-dd hh:mm:ss
Thường xuyên hơn, bạn sẽ có dấu thời gian unix được biểu thị bằng giây. Như trong vài giây từ nguồn gốc mặc định của 1970-01-01 Show Ví dụ: tại thời điểm viết bài này, chúng ta cách 1970-01-01 1.600.355.888 giây. Đó là rất nhiều giây Chỉ định thứ tự phân tích ngày nếu arg là str hoặc danh sách thích của nó. Nếu Đúng, phân tích ngày bằng ngày đầu tiên, ví dụ: 11/10/12 được phân tích thành 2012-11-10. Cảnh báo. dayfirst=True không nghiêm ngặt, nhưng sẽ thích phân tích cú pháp với ngày đầu tiên (đây là một lỗi đã biết, dựa trên hành vi dateutil) đầu năm. boolean, mặc định Sai
utc. boolean, mặc định Không có
hộp. boolean, mặc định Đúng
định dạng. chuỗi, mặc định Không có
chính xác. boolean, True theo mặc định
đơn vị. đơn vị của đối số (D,s,ms,us,ns) biểu thị đơn vị trong kỷ nguyên
suy ra_datetime_format. boolean, mặc định Sai trả lại rút lui. datetime nếu phân tích cú pháp thành công
ví dụ Lắp ráp một ngày giờ từ nhiều cột của DataFrame. Các phím có thể là các từ viết tắt phổ biến như ['year', 'month', 'day', 'minute', 'second', 'ms', 'us', 'ns']) hoặc số nhiều của các từ giống nhau >>> df = pd.DataFrame({'year': [2015, 2016], 'month': [2, 3], 'day': [4, 5]}) >>> pd.to_datetime(df) 0 2015-02-04 1 2016-03-05 dtype: datetime64[ns] Nếu một ngày không đáp ứng các giới hạn về dấu thời gian, việc chuyển lỗi=’coerce’ sẽ buộc phải NaT. Hơn nữa, điều này cũng sẽ buộc các ngày không phải là NaT >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT Việc chuyển infer_datetime_format=True thường có thể tăng tốc độ phân tích cú pháp nếu nó không phải là định dạng ISO8601 chính xác mà ở định dạng thông thường Làm việc với >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 trong Pandas đôi khi có thể khó khăn nếu cột >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 của bạn là một chuỗi có định dạng hỗn hợp, lộn xộn. Bạn sẽ cần thực hiện một số bước tiền xử lý và chuyển đổi các định dạng hỗn hợp thành loại >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 tiêu chuẩn để thực hiện mọi phân tích dữ liệu tiếp theo Hãy cùng xem ví dụ sau. Trong khung dữ liệu này, chúng tôi có một cột có tên là 'joining_date' có vẻ là cột >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 nhưng thực ra là cột chuỗi. Hơn nữa, tất cả các ngày đều được sắp xếp theo các định dạng khác nhau Ví dụ: đối với ID a0001, chuỗi ngày được sắp xếp trong DD. MM. Định dạng YYYY trong đó ngày được viết đầu tiên. Đối với ID a0005, chuỗi ngày được hiển thị ở định dạng DD-MM-YY trong đó ngày cũng được viết trước. Đối với ID a0002, chuỗi ngày được sắp xếp theo định dạng MM/DD/YYYY với tháng được viết trước, điều này phổ biến ở Hoa Kỳ. S Vậy chúng ta có thể làm gì để xóa cột chuỗi ngày lộn xộn có nhiều định dạng khác nhau một cách dễ dàng và hiệu quả? Trước tiên, hãy thử phương pháp df['joining_date'] = pd.to_datetime(df['joining_date']) 0 của Pandas có thể phân tích cú pháp bất kỳ chuỗi ngày hợp lệ nào thành >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 một cách dễ dàng. Nếu chúng tôi chỉ đơn giản làm như sau mà không có bất kỳ đối số bổ sung nào, chúng tôi sẽ nhận được kết quả hiển thị bên dưới df['joining_date'] = pd.to_datetime(df['joining_date']) Chúng ta có thể thấy rằng với phương thức df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 0, chúng ta có thể phân tích các chuỗi ngày có định dạng hỗn hợp thành >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 với định dạng chuẩn (mặc định là YYYY-MM-DD). Vì theo mặc định, df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 0 phân tích chuỗi có định dạng đầu tiên của tháng (MM/DD, MM DD hoặc MM-DD), nên nó trộn lẫn ngày và tháng cho các chuỗi ngày với định dạng ngày đầu tiên (e. g. , ĐD. MM. YYYY cho những ngày có dấu gạch chéo màu đỏ)Để khắc phục sự cố này, chúng ta chỉ cần thêm đối số df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 3 vào mã bên dướidf['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) Vâng. Vì vậy, điều này đã khắc phục vấn đề trước đó nhưng tạo ra một vấn đề mới. Đối với chuỗi ngày có định dạng MM/DD/YYYY (hàng 7), vì chúng tôi đặt đối số df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 4 thành df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 5, nó đã chuyển đổi 3/5/2016 thành 2016–03–05, coi 5 là ngày và 3 là Để khắc phục sự cố mới này, chúng ta có thể áp dụng điều kiện df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 6 để chỉ đặt đối số df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 4 thành df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 5 cho các chuỗi ngày có ngày được viết trước>>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT2 nó hoạt động. Bây giờ chúng ta có một cột ngày rõ ràng hơn nhiều để làm việc với. Xin lưu ý rằng bạn cũng có thể chỉ định định dạng ngày đầu ra khác với định dạng mặc định, bằng cách sử dụng phương thức df['joining_date'] = pd.to_datetime(df['joining_date'], dayfirst=True) 9. Ví dụ: bạn có thể chọn hiển thị ngày đầu ra là MM/DD/YYYY bằng cách chỉ định >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT20 >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT5 của bạn đi. Không cần thực hiện bất kỳ thao tác chuỗi ưa thích nào, chúng tôi có thể chuyển đổi chuỗi ngày lộn xộn trong tập dữ liệu gốc thành cột >>> pd.to_datetime('13000101', format='%Y%m%d') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT6 tiêu chuẩn. Tôi hy vọng bạn đã học được một số thủ thuật về cách làm việc với các cột chuỗi ngày lộn xộn trong Pandas. Cảm ơn đã đọc và hy vọng bạn thích hướng dẫn ngắn này Nguồn dữ liệu Bộ dữ liệu mẫu được sử dụng trong bài đăng này được tạo bởi tác giả cho mục đích trình diễn Bạn có thể mở khóa toàn quyền truy cập vào bài viết của tôi và phần còn lại của Phương tiện bằng cách đăng ký làm thành viên Phương tiện ($5 mỗi tháng) thông qua liên kết giới thiệu này. Bằng cách đăng ký qua liên kết này, tôi sẽ nhận được một phần phí thành viên của bạn mà bạn không phải trả thêm phí. Cảm ơn bạn Làm cách nào để thay đổi loại ngày trong gấu trúc?Sử dụng gấu trúc.
phương thức to_datetime() được sử dụng để thay đổi thời gian Chuỗi/Đối tượng thành loại 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 thành ngày.
Làm cách nào để thay đổi định dạng ngày từ mm dd yyyy thành dd mm yyyy trong gấu trúc?phương thức strftime(). Ví dụ: bạn có thể chọn hiển thị ngày đầu ra là MM/DD/YYYY bằng cách chỉ định dt. strftime('%m/%d/%Y') . của bạn đi.
Làm cách nào để thay đổi định dạng thời gian trong gấu trúc?Pandas Convert Date to String Format – Để thay đổi/chuyển đổi datetime của pandas ( datetime64[ns] ) từ định dạng mặc định sang String/Object hoặc định dạng tùy chỉnh, hãy sử dụng pandas. Loạt. đt. phương thức strftime()
Làm cách nào để thay đổi định dạng ngày giờ thành ngày trong gấu trúc?Bạn có thể chuyển đổi DateTime thành Date trong pandas bằng cách sử dụng dt. ngày và dt. phương thức chuẩn hóa () . Trong Pandas, DateTime là tập hợp ngày và giờ ở định dạng “YYYY-MM-DD HH. MM. SS” trong đó YYYY-MM-DD được gọi là ngày và HH. MM. SS được gọi là Thời gian. |