Kết hợp ngày và giờ python pandas
Câu trả lời được chấp nhận hoạt động cho các cột thuộc kiểu dữ liệu import pandas as pd7. cho đầy đủ. Tôi bắt gặp câu hỏi này khi tìm kiếm cách thực hiện việc này khi các cột thuộc kiểu dữ liệu. ngày và giờ Show
~ Đã trả lời vào 2016-09-13 16. 24. 48 Trong bài đăng này, chúng ta sẽ xem cách kết hợp các cột chứa năm, tháng và ngày thành một cột duy nhất có kiểu ngày giờ. Chúng ta có thể kết hợp nhiều cột thành một cột ngày theo nhiều cách. Đầu tiên, chúng ta sẽ xem làm thế nào chúng ta có thể kết hợp cột năm, tháng và ngày thành một cột kiểu datetime, trong khi đọc dữ liệu bằng hàm read_csv() của Pandas. Tiếp theo, chúng ta sẽ kết hợp các cột năm, tháng và ngày bằng hàm áp dụng () của Pandas Đầu tiên, chúng ta hãy tải Pandas import pandas as pd Chúng tôi sẽ sử dụng dữ liệu mẫu chỉ chứa ba cột, năm, tháng và ngày. Chúng tôi sẽ tải dữ liệu trực tiếp từ trang github path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv" df = pd.read_csv(path2data) Dữ liệu của chúng tôi trông như thế này df.head() year month day 0 2012 1 1 1 2012 1 2 2 2012 1 3 3 2012 1 4 4 2012 1 5 Kết hợp các cột Năm, Tháng và Ngày thành cột Ngày giờ trong khi đọc tệpMột trong những cách để kết hợp 3 cột tương ứng với Năm, Tháng và Ngày trong khung dữ liệu là phân tích chúng dưới dạng biến ngày trong khi tải tệp dưới dạng khung dữ liệu Pandas Trong khi tải tệp dưới dạng khung dữ liệu của Pandas bằng hàm read_csv(), chúng tôi có thể chỉ định tên cột sẽ được kết hợp thành cột ngày giờ. Chúng ta sẽ sử dụng đối số “parse_dates” cho hàm read_csv() và cung cấp các cột năm, tháng và ngày làm giá trị cho từ điển với biến ngày mới làm khóa df = pd.read_csv(path2data, parse_dates= {"date" : ["year","month","day"]}) Giờ đây, read_csv() của Pandas kết hợp các cột đó thành một cột ngày duy nhất. Và chúng ta có thể kiểm tra kiểu dữ liệu của biến mới bằng cách sử dụng chức năng thông tin () của Pandas df.info() Chúng ta có thể thấy rằng nó là một đối tượng kiểu “datetime[ns]”
Cũng lưu ý rằng trong khi kết hợp ba cột thành một cột ngày, ba cột ban đầu không có trong khung dữ liệu. Nếu bạn muốn giữ ba cột sau khi kết hợp chúng thành datetime, chúng ta cần sử dụng “keep_date_col=True” df = pd.read_csv(path2data, parse_dates= {"date" : ["year","month","day"]}, keep_date_col=True) Bây giờ chúng tôi có bốn cột bao gồm cột Năm, Tháng và Ngày ban đầu df.head()
Kết hợp các cột Tháng, Năm và Ngày với áp dụng Pandas()Một cách tiếp cận khác để kết hợp nhiều cột thành một cột ngày đầu tiên bằng cách dán ba cột bằng cách sử dụng hàm apply() Trong ví dụ này, chúng tôi chỉ định các cột quan tâm. Trong khung dữ liệu mẫu của chúng tôi, đó là tất cả các cột. Và sau đó sử dụng hàm lambda để kết hợp ba giá trị liên tiếp bằng hàm join() import pandas as pd0 Bây giờ chúng tôi có một cột mới cho ngày path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv" df = pd.read_csv(path2data)0 Chúng ta có thể sử dụng hàm info() để xem biến mới chưa phải là đối tượng ngày giờ path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv" df = pd.read_csv(path2data)1 Chúng ta có thể chuyển đổi cột ngày thành loại ngày giờ bằng hàm Pandas to_datetime() như trong bài viết Làm cách nào để kết hợp data['Date'] & data['Time'] để có được thông tin sau? import pandas as pd3 Giải pháp tốt nhấtĐiều đáng nói là bạn có thể đã đọc được điều này trực tiếp trong e. g. nếu bạn đang sử dụng import pandas as pd9 sử dụng path2data = "https://raw.githubusercontent.com/cmdlinetips/data/master/combine_year_month_day_into_date_pandas.csv" df = pd.read_csv(path2data)0 Giả sử đây chỉ là các chuỗi, bạn chỉ cần cộng chúng lại với nhau (có khoảng trắng), cho phép bạn áp dụng import pandas as pd30 import pandas as pd5 Ghi chú. đáng ngạc nhiên (đối với tôi), điều này hoạt động tốt với NaN được chuyển đổi thành NaT, nhưng điều đáng lo ngại là việc chuyển đổi (có lẽ sử dụng đối số import pandas as pd31) Làm cách nào để kết hợp ngày và giờ trong gấu trúc?Một đối tượng Dấu thời gian trong pandas tương đương với đối tượng datetime của Python. Nó là sự kết hợp của các trường ngày và giờ. Để kết hợp ngày và giờ vào một đối tượng Dấu thời gian, chúng tôi sử dụng Dấu thời gian. hàm combine() trong pandas .
To_datetime trong gấu trúc là gì?Hàm này chuyển đổi một đối tượng vô hướng, dạng mảng, Sê-ri hoặc DataFrame /dict thành một đối tượng thời gian của gấu trúc . Tham số argint, float, str, datetime, list, tuple, mảng 1-d, Sê-ri, DataFrame/giống như dict. Đối tượng để chuyển đổi thành một ngày giờ.
Làm cách nào để nối năm và tháng trong gấu trúc?Khung dữ liệu ({"Năm". ["2020","2020"], "Tháng". ["10","11"], "Ngày". ["25","26"]}) df. Năm tháng ngày. . df["Ngày"] = pd. to_datetime(df["Năm"] + "/" + df["Tháng"] + "/" + df["Ngày"]) df. . df["Năm"] + "/" + df["Tháng"] + "/" + df["Ngày"] 0 2020/10/25. 1 2020/11/26. . pd. to_datetime(df["Năm"] + "/" + df["Tháng"] + "/" + df["Ngày"]) Làm cách nào để chuyển đổi ngày giờ thành chuỗi trong gấu trúc?Sử dụng astype() để thay đổi ngày giờ thành định dạng chuỗi
. Ví dụ dưới đây trả về ngày dưới dạng chuỗi có định dạng %Y/%m/%d. dtype của cột ConvertedDate sẽ là đối tượng ( string ). |