Trong hướng dẫn Pandas này, chúng ta sẽ tìm hiểu cách chuyển đổi một cột chứa ngày ở định dạng chuỗi thành ngày giờ. Đầu tiên, chúng ta sẽ xem xét việc chuyển đổi các đối tượng [i. e. , chuỗi] thành datetime bằng phương thức
0. Một điều thú vị khi làm việc với to_datetime[] là chúng ta có thể làm việc với tham số format. Đó là, chúng ta cũng sẽ xem xét làm thế nào để có được định dạng chính xác khi chuyển đổi. Sau đó, chúng tôi sẽ tiếp tục và thực hiện tác vụ chuyển đổi này bằng phương phápCode language: Python [python]
data = {'Salary':[1000, 2222, 3321, 4414, 5151], 'Name': ['Pete', 'Steve', 'Brian', 'Ryan', 'Jim'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Date':['11/24/2020', '12/21/2019', '10/14/2018', '12/13/2017', '01/08/2017'], 'Date2': [20120902, 20130413, 20140921, 20140321, 20140321]} print[data]
0Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Tiết kiệm
Trong hai phần cuối, chúng tôi sẽ nhập dữ liệu từ đĩa. Đầu tiên, chúng ta sẽ xem cách làm việc với datetime khi đọc. tệp csv. Thứ hai, chúng tôi sẽ nhập dữ liệu từ tệp Excel. Bây giờ, tùy thuộc vào cách chúng tôi muốn khung dữ liệu của mình, chúng tôi có thể phân tích cú pháp ngày trong tệp dữ liệu của mình dưới dạng chỉ mục hoặc chỉ định [các] cột. Hơn nữa, trong cả hai ví dụ, chúng ta sẽ làm việc với đối số
3.Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Dữ liệu mẫu
Đầu tiên, trước khi chuyển sang hai ví dụ, chúng ta sẽ tạo một khung dữ liệu Pandas từ một từ điển. Ở đây, chúng ta sẽ tạo một từ điển
Code language: Python [python]
data = {'Salary':[1000, 2222, 3321, 4414, 5151], 'Name': ['Pete', 'Steve', 'Brian', 'Ryan', 'Jim'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Date':['11/24/2020', '12/21/2019', '10/14/2018', '12/13/2017', '01/08/2017'], 'Date2': [20120902, 20130413, 20140921, 20140321, 20140321]} print[data]
Tiết kiệm
Lưu ý rằng bây giờ chúng ta có một từ điển với các chuỗi chứa datetime [i. e. , các giá trị được tìm thấy nếu sử dụng phím 'Date']. Tạo một khung dữ liệu là bước tiếp theo, sau đó. Đầu tiên, chúng tôi nhập pandas và sau đó chúng tôi sử dụng pd. Lớp DataFrame với từ điển làm đầu vào
Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Tiết kiệm
Trong hình trên, chúng ta có thể thấy rằng chúng ta có bốn cột và cột cuối cùng chứa các chuỗi ngày giờ mà chúng ta muốn chuyển đổi. Tuy nhiên, trước tiên, chúng ta có thể xem xét các loại dữ liệu của khung dữ liệu. Điều này có thể được thực hiện bằng cách sử dụng phương thức info[]
Code language: CSS [css]
df.info[]
Tiết kiệm
Rõ ràng ở đầu ra, các kiểu dữ liệu của cột 'Ngày' là đối tượng [i. e. , một chuỗi] và ‘Date2’ là số nguyên. Lưu ý, bạn cũng có thể chuyển đổi một mảng NumPy thành khung dữ liệu Pandas, nếu cần. Trong phần tiếp theo, chúng tôi sẽ sử dụng phương pháp
0 để chuyển đổi cả hai loại dữ liệu này thành ngày giờCode language: Python [python]
data = {'Salary':[1000, 2222, 3321, 4414, 5151], 'Name': ['Pete', 'Steve', 'Brian', 'Ryan', 'Jim'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Date':['11/24/2020', '12/21/2019', '10/14/2018', '12/13/2017', '01/08/2017'], 'Date2': [20120902, 20130413, 20140921, 20140321, 20140321]} print[data]
Pandas Chuyển đổi cột bằng phương thức to_datetime[]
Trong phần này, chúng ta sẽ làm việc với chuỗi chuyển đổi to_datetime[] thành 1] và 2] chuyển đổi số nguyên. Cả hai đến datetime, tất nhiên
1 Chuyển đổi cột Đối tượng [chuỗi]
Bây giờ, đây là cách chuyển đổi một cột thành ngày giờ
Code language: Python [python]
# convert column to datetime pandas df['Date'] = pd.to_datetime[df['Date']]
Trong đoạn mã ở trên, chúng tôi đã sử dụng khung dữ liệu của mình [i. e. , df] và dấu ngoặc. Hơn nữa, trong ngoặc, chúng tôi đặt một chuỗi có cột mà chúng tôi muốn chuyển đổi. Lưu ý, nếu bạn muốn đây là một cột mới, chỉ cần thay đổi 'Ngày' thành i. e. 'Ngày giờ'. Điều đó sẽ thêm một cột mới vào khung dữ liệu. Ở phía bên phải của dấu bằng [“=”], chúng tôi đã sử dụng phương pháp
0. Vì chúng tôi không làm việc với bất kỳ định dạng nào, chúng tôi chỉ sử dụng lại cột ở đây mà chúng tôi muốn chuyển đổi. Đây là cột được chuyển đổi thành datetimeCode language: Python [python]
data = {'Salary':[1000, 2222, 3321, 4414, 5151], 'Name': ['Pete', 'Steve', 'Brian', 'Ryan', 'Jim'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Date':['11/24/2020', '12/21/2019', '10/14/2018', '12/13/2017', '01/08/2017'], 'Date2': [20120902, 20130413, 20140921, 20140321, 20140321]} print[data]
Tiết kiệm
2 Chuyển đổi một cột số nguyên
Đây là cách chuyển đổi số nguyên thành ngày giờ trong khung dữ liệu
# pandas convert column with integers to date time df['Date2'] = pd.to_datetime[df['Date2']]
Code language: Python [python]
Như chúng ta có thể thấy trong kết quả ở trên, loại cột 'Date2' đã được chuyển đổi thành datetime
Tiết kiệm
Lưu ý, nếu ngày của bạn được định dạng khác và trong các ví dụ này, bạn cũng có thể sử dụng tham số định dạng. Để biết thêm thông tin về phương pháp
0, hãy xem tài liệu. Bây giờ bạn đã thay đổi kiểu dữ liệu trong khung dữ liệu, ví dụ: bạn có thể sử dụng phương thức Pandas value_count[] để đếm số lần xuất hiện trong một cột. Trong phần tiếp theo, chúng tôi sẽ thực hiện tác vụ chuyển đổi tương tự nhưng sử dụng phương thứcCode language: Python [python]
data = {'Salary':[1000, 2222, 3321, 4414, 5151], 'Name': ['Pete', 'Steve', 'Brian', 'Ryan', 'Jim'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Date':['11/24/2020', '12/21/2019', '10/14/2018', '12/13/2017', '01/08/2017'], 'Date2': [20120902, 20130413, 20140921, 20140321, 20140321]} print[data]
0.Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Pandas Chuyển đổi cột bằng phương thức astype[]
Trong phần này, chúng ta sẽ sử dụng phương pháp
0. Đây là cách chuyển đổi một cột, chứa chuỗi, thành datetime bằng phương thứcCode language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
0Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
0Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Lưu ý cách chúng tôi đặt datetime[ns] làm đối số duy nhất. Điều này sẽ tạo ra đầu ra sau, tương tự như những gì chúng ta đã thấy trước đó
Lưu ý cuối cùng, không thể thay đổi loại từ số nguyên thành ngày giờ với cùng mã ở trên. Trong hai phần tiếp theo, chúng ta sẽ chuyển đổi sang datetime khi đọc dữ liệu từ đĩa
Chuyển đổi cột thành datetime khi đọc tệp CSV
Đây là cách thay đổi một cột thành datetime trong khi sử dụng phương thức read_csv của Pandas
1Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Tiết kiệm
Như có thể thấy trong mã ví dụ ở trên, chúng tôi đã sử dụng tham số
3 và đặt số cột lưu trữ ngày của chúng tôi. Như thường lệ, khi làm việc với Python, các chỉ mục bắt đầu từ 0. Đáng chú ý, ở đây, là chúng tôi cũng đã sử dụng tham sốCode language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
1 và đặt tham số này ở cột đầu tiên [0] trong tệp dữ liệu. Mặt khác, nếu chúng ta có ngày tháng trong cột đầu tiên [i. e. , bên trong. csv], chúng ta có thể đặt ngày làm chỉ mụcCode language: CSS [css]
df.info[]
4Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Tiết kiệm
Cuối cùng, nếu bạn muốn cột ngày được lập chỉ mục, điều này có thể được thực hiện sau khi đọc. tệp csv cũng vậy. Tại đây, bạn sẽ chỉ tạo chỉ mục cột trong khung dữ liệu Pandas bằng phương thức
2Code language: CSS [css]
df.info[]
Chuyển đổi cột thành ngày giờ khi đọc tệp Excel
Dưới đây là cách thay đổi cột thành ngày giờ khi nhập dữ liệu bằng Pandas read_excel
6Code language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]
Như bạn có thể thấy, trong đoạn mã trên, chúng tôi đã sử dụng cùng một tham số như khi đọc tệp CSV [i. e. , parse_date]. Lưu ý, ở đây chúng tôi đặt cột ngày, trong tệp Excel, dưới dạng chỉ mục. Nếu bạn muốn đây là một cột, hãy thay đổi
3 thànhCode language: CSS [css]
df.info[]
4Code language: CSS [css]
df.info[]
Bây giờ bạn đã chuyển đổi ngày của mình thành đối tượng datetime, bạn có thể bắt đầu làm việc với các phương thức liên quan đến ngày khác, chẳng hạn như TimeDelta. Ví dụ: bây giờ bạn có thể tính toán sự khác biệt giữa hai ngày. Hơn nữa, bạn cũng có thể vẽ biểu đồ dữ liệu của mình theo biểu đồ chuỗi thời gian bằng cách sử dụng e. g. Biểu đồ dòng Seaborn
Lưu ý cuối cùng, đối với cả hai phương pháp trên, là nếu bạn có nhiều cột cần chuyển đổi thành ngày giờ, bạn có thể thêm từng chỉ mục của các cột này vào danh sách. Đây là một số mã ví dụ
Sự kết luận
Trong bài đăng này, bạn đã chuyển đổi chuỗi và số nguyên [trong cột khung dữ liệu] thành ngày giờ. Đầu tiên, bạn đã học cách sử dụng phương pháp
0. Thứ hai, bạn đã học cách sử dụng phương phápCode language: Python [python]
data = {'Salary':[1000, 2222, 3321, 4414, 5151], 'Name': ['Pete', 'Steve', 'Brian', 'Ryan', 'Jim'], 'Share':[29.88, 19.05, 8.17, 7.3, 6.15], 'Date':['11/24/2020', '12/21/2019', '10/14/2018', '12/13/2017', '01/08/2017'], 'Date2': [20120902, 20130413, 20140921, 20140321, 20140321]} print[data]
0. Hãy nhớ rằng, không thể thay đổi kiểu dữ liệu từ số nguyên sang ngày giờ nếu bạn sử dụng phương pháp sau. Cuối cùng, bạn cũng đã học cách chỉ định cột nào thuộc loại ngày giờ khi đọc tệp CSV và ExcelCode language: Python [python]
import pandas as pd df = pd.DataFrame[data] df.head[]