Ví dụ: đây là tập dữ liệu đơn giản về 3 ngày khác nhau [với định dạng là yyyymmdd], khi một cửa hàng có thể được mở hoặc đóng cửa
NgàyTrạng thái20210305Đã mở20210316Đã mở20210328Đã đóngBước 2. Tạo một khung dữ liệu
Tiếp theo, tạo DataFrame để thu thập dữ liệu trên bằng Python. Bạn có thể nắm bắt ngày dưới dạng chuỗi bằng cách đặt dấu ngoặc kép quanh các giá trị bên dưới cột 'ngày'
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]
Chạy mã bằng Python và bạn sẽ nhận được Khung dữ liệu này
dates status
0 20210305 Opened
1 20210316 Opened
2 20210328 Closed
dates object
status object
dtype: object
Lưu ý rằng 'ngày' thực sự được lưu trữ dưới dạng chuỗi [được biểu thị bằng đối tượng]
Bước 3. Chuyển đổi chuỗi thành ngày giờ trong DataFrame
Sau đó, bạn có thể sử dụng mẫu bên dưới để chuyển đổi chuỗi thành ngày giờ trong Pandas DataFrame
df['DataFrame Column'] = pd.to_datetime[df['DataFrame Column'], format=specify your format]
Nhớ lại rằng đối với ví dụ của chúng tôi, định dạng ngày là yyyymmdd
Định dạng ngày này có thể được biểu diễn dưới dạng
format='%Y%m%d'
Lưu ý rằng dữ liệu chuỗi [yyyymmdd] phải khớp với định dạng đã chỉ định [%Y%m%d]. Bạn có thể tham khảo nguồn sau đây để biết sự khác biệt mà bạn có thể áp dụng
Ví dụ của chúng tôi, mã Python hoàn chỉnh để chuyển đổi chuỗi thành ngày giờ sẽ là
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] df['dates'] = pd.to_datetime[df['dates'], format='%Y%m%d'] print [df] print [df.dtypes]
Bạn sẽ thấy rằng kiểu dữ liệu cho cột 'dates' bây giờ là datetime
dates status
0 2021-03-05 Opened
1 2021-03-16 Opened
2 2021-03-28 Closed
dates datetime64[ns]
status object
dtype: object
Lưu ý rằng khi áp dụng pd. to_datetime, định dạng mặc định là yyyymmdd. Vì vậy, trong ví dụ cụ thể ở trên, bạn có thể xóa định dạng =’%Y%m%d’ khỏi mã. Tuy nhiên, trong các tình huống khác, như bạn sẽ thấy bên dưới, bạn phải chỉ định định dạng chính xác để khớp với dữ liệu chuỗi
Chuyển đổi định dạng bổ sung
Giả sử rằng các ngày hiện được định dạng là ddmmyyyy
NgàyTrạng thái05032021Đã mở16032021Đã mở28032021Đã đóngTrong trường hợp đó, bạn sẽ cần áp dụng định dạng bên dưới [để tham khảo, hãy kiểm tra phần sau để xác định định dạng chính xác mà bạn nên áp dụng]
format='%d%m%Y'
Đây là mã Python hoàn chỉnh
import pandas as pd values = {'dates': ['05032021','16032021','28032021'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] df['dates'] = pd.to_datetime[df['dates'], format='%d%m%Y'] print [df] print [df.dtypes]
Như trước đây, chuỗi của bạn bây giờ sẽ được chuyển đổi thành datetime
dates status
0 2021-03-05 Opened
1 2021-03-16 Opened
2 2021-03-28 Closed
dates datetime64[ns]
status object
dtype: object
Điều gì sẽ xảy ra nếu ngày của bạn có định dạng ddmmmyyyy [e. g. , 05Mar2021]?
Sau đó, bạn sẽ cần áp dụng những điều dưới đây [bằng cách thay đổi 'm' thành 'b']
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]0
Vì vậy, mã Python hoàn chỉnh của bạn sẽ trông như thế này
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]1
Bây giờ bạn sẽ nhận được định dạng ngày giờ
dates status
0 2021-03-05 Opened
1 2021-03-16 Opened
2 2021-03-28 Closed
dates datetime64[ns]
status object
dtype: object
Giả sử rằng ngày của bạn hiện có dấu gạch ngang [e. g. , ’05-Mar-2021′]
Trong trường hợp đó, chỉ cần thêm các dấu gạch ngang như sau
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]3
Đây là mã Python đầy đủ
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]4
Và kết quả
dates status
0 2021-03-05 Opened
1 2021-03-16 Opened
2 2021-03-28 Closed
dates datetime64[ns]
status object
dtype: object
Định dạng có Dấu thời gian
Giả sử rằng chuỗi của bạn chứa cả ngày và giờ
NgàyTình trạng20210305093000Đã mở20210316093000Đã mở20210328200000Đã đóngTrong trường hợp đó, định dạng nên được chỉ định là
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]6
Vì vậy, mã Python đầy đủ sẽ là
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]7
Bây giờ bạn sẽ thấy định dạng ngày giờ
import pandas as pd values = {'dates': ['20210305','20210316','20210328'], 'status': ['Opened','Opened','Closed'] } df = pd.DataFrame[values] print [df] print [df.dtypes]8
Bây giờ, giả sử rằng các chuỗi chứa các ký tự, chẳng hạn như ký tự gạch ngang [“-“] để phân tách giữa ngày và giờ