Tôi có một cột
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
6 trong đó dấu thời gian ở định dạng sau2016-06-16T21:35:17.098+01:00
Tôi muốn trích xuất ngày và thời gian từ nó. Tôi đã làm như sau:
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
Điều này đã làm việc trong một thời gian. Nhưng đột nhiên nó không.
Nếu tôi lại làm
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
7, tôi sẽ gặp lỗi sauCan only use .dt accessor with datetimelike values
May mắn thay, tôi đã lưu khung dữ liệu với
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
8 trong CSV nhưng bây giờ tôi muốn tạo một cột khác import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
9 ở định dạng Can only use .dt accessor with datetimelike values
0CHỈNH SỬA
Từ tệp dữ liệu thô [15 triệu mẫu], cột
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
6 trông giống như sau [5 mẫu đầu tiên]: timestamp
0 2016-06-13T00:00:00.051+01:00
1 2016-06-13T00:00:00.718+01:00
2 2016-06-13T00:00:00.985+01:00
3 2016-06-13T00:00:02.431+01:00
4 2016-06-13T00:00:02.737+01:00
Sau lệnh sau
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
Cột
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
6 trông giống như Can only use .dt accessor with datetimelike values
3 dưới dạng DTYPE: DateTime64 [NS]0 2016-06-12 23:00:00.051
1 2016-06-12 23:00:00.718
2 2016-06-12 23:00:00.985
3 2016-06-12 23:00:02.431
4 2016-06-12 23:00:02.737
Rồi cuối cùng
df['dates'] = df['timestamp'].dt.date
0 2016-06-12
1 2016-06-12
2 2016-06-12
3 2016-06-12
4 2016-06-12
Chỉnh sửa 2
Tìm thấy sai lầm. Tôi đã làm sạch dữ liệu và lưu khung dữ liệu trong tệp CSV, vì vậy tôi không phải làm lại. Khi tôi đọc CSV, dấu thời gian
Can only use .dt accessor with datetimelike values
3 sẽ thay đổi đối tượng. Bây giờ làm cách nào để sửa chữa cái này? Trong hướng dẫn này, bạn sẽ học cách sử dụng gấu trúc để trích xuất các bộ phận ngày từ cột DateTime, chẳng hạn như ngày, năm và tháng. Pandas cung cấp một số cách dễ dàng để trích xuất các bộ phận từ đối tượng DateTime, bao gồm cả việc sử dụng trình truy cập
Can only use .dt accessor with datetimelike values
5.you’ll learn how to use Pandas to extract date parts from a datetime column, such as to date, year, and month. Pandas provides a number of easy ways to extract parts from a datetime object, including using the Can only use .dt accessor with datetimelike values
5 accessor. Đến cuối hướng dẫn này, bạn sẽ học được cách thức hoạt động của
Can only use .dt accessor with datetimelike values
6 và cách sử dụng hàm Can only use .dt accessor with datetimelike values
7 để chuyển đổi cột thành ngày trong khi duy trì kiểu dữ liệu DateTime. Bạn cũng sẽ học cách kiểm tra các loại dữ liệu của các cột khác và tổng quan chung về các phần ngày phổ biến mà bạn có thể muốn chuyển đổi. Bạn cũng có thể chỉ cần sử dụng chức năng Python Can only use .dt accessor with datetimelike values
8, nhưng nó luôn luôn tốt để có nhiều cách để xử lý một vấn đề.Câu trả lời nhanh: Sử dụng DF [‘Date_Column,].
# Extract date from datetime column in Pandas
df['Date'] = df['DateTime'].dt.date
- Trình truy cập DT DTETIME PANDAS là gì
- Đang tải một mẫu dữ liệu gấu trúc mẫu
- Trích xuất một ngày từ cột DateTime Pandas
- Trích xuất các bộ phận ngày từ cột DateTime Pandas
- Sự kết luận
- Tài nguyên bổ sung
Trình truy cập DT DTETIME PANDAS là gì
Đang tải một mẫu dữ liệu gấu trúc mẫu
Trích xuất một ngày từ cột DateTime Pandas
Trích xuất các bộ phận ngày từ cột DateTime Pandas
Sự kết luận
Khi làm việc với các giá trị DateTime của Pandas, chúng ta có thể sử dụng Trình truy cập
Can only use .dt accessor with datetimelike values
5 để truy cập các thuộc tính khác nhau từ loạt gấu trúc. Điều này có nghĩa là chúng ta có thể trích xuất các phần khác nhau từ một đối tượng DateTime, chẳng hạn như tháng, ngày, và nhiều hơn nữa.
Trình truy cập DateTime phổ biến để trích xuất trong gấu trúc | Các bảng sau đây cung cấp tổng quan về một số người truy cập DT phổ biến nhất mà bạn có thể sử dụng trong Pandas: |
Pandas DT Accessor | Được sử dụng để truy cập |
1 | Số tuần |
2 | Giá trị năm, được trả lại như một số nguyên |
3 | Ngày không có giá trị thời gian |
4 | Ngày của tháng, được trả lại dưới dạng giá trị từ 1 đến 31 |
5 | Tháng trong năm, được trả lại như một giá trị từ 1 đến 12 |
timestamp
0 2016-06-13T00:00:00.051+01:00
1 2016-06-13T00:00:00.718+01:00
2 2016-06-13T00:00:00.985+01:00
3 2016-06-13T00:00:02.431+01:00
4 2016-06-13T00:00:02.737+01:00
6Ngày trong tuần trở lại như một giá trị trong đó Thứ Hai = 0 và Chủ nhật = 6
Đang tải một mẫu dữ liệu gấu trúc mẫu
Trích xuất một ngày từ cột DateTime Pandas
# Loading a Sample Pandas Dataframe
import pandas as pd
df = pd.DataFrame.from_dict[{
'DateTime': ['2022-01-01 15:34:21', '2022-02-03 10:13:45', '2022-03-04 12:12:45', '2022-04-03 14:45:23', '2022-05-27 18:23:45'],
'Name': ['Nik', 'Kate', 'Lou', 'Samrat', 'Jim'],
'Age': [33, 32, 45, 37, 23]
}]
df['DateTime'] = pd.to_datetime[df['DateTime']]
print[df]
# Returns:
# DateTime Name Age
# 0 2022-01-01 15:34:21 Nik 33
# 1 2022-02-03 10:13:45 Kate 32
# 2 2022-03-04 12:12:45 Lou 45
# 3 2022-04-03 14:45:23 Samrat 37
# 4 2022-05-27 18:23:45 Jim 23
Trích xuất các bộ phận ngày từ cột DateTime Pandas
# Checking the data type of our DateTime column
print[df['DateTime'].dtype]
# Returns: datetime64[ns]
Sự kết luận
Trích xuất một ngày từ cột DateTime Pandas
Trích xuất các bộ phận ngày từ cột DateTime Pandas
Hãy để xem những gì nó trông như thế nào:
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
0Chúng ta có thể thấy việc trích xuất chỉ phần ngày từ cột DateTime dễ dàng như thế nào.
Một điều quan trọng cần lưu ý là ngày mà trả về thực sự là một kiểu dữ liệu
2. Chúng tôi có thể xác nhận điều này bằng cách kiểm tra kiểu dữ liệu của cột:We can confirm this by checking the data type of
the column:df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
1Điều này có thể hoặc không làm việc cho các trường hợp sử dụng của bạn. Mặc dù bạn có thể chuyển đổi đối tượng ngày trở lại một ngày, chúng tôi thực sự có thể giữ lại kiểu dữ liệu trực tiếp bằng cách sử dụng hàm
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
3.Sử dụng bình thường hóa để trích xuất một ngày từ cột DateTime Pandas
Để duy trì kiểu dữ liệu của cột của chúng tôi khi trích xuất một ngày từ cột gấu trúc, chúng tôi có thể sử dụng hàm
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
4. Hàm có một đối tượng thời gian ngày và bình thường hóa thời gian đến nửa đêm. Đây là một phương pháp hữu ích cho phép chúng tôi giữ kiểu dữ liệu khi thông tin thời gian không quan trọng.Hãy để xem cách chúng ta có thể sử dụng phương pháp này để trích xuất một ngày từ cột DateTime:
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
2Chúng ta có thể thấy rằng bằng cách áp dụng hàm bình thường hóa mà ngày được trích xuất. Hãy để xác nhận rằng loại dữ liệu vẫn giữ nguyên:
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
3Chúng ta có thể thấy rằng khi sử dụng hàm
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
4 mà kiểu dữ liệu kết quả không phải là df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
2, nhưng vẫn là loại dữ liệu timestamp
0 2016-06-13T00:00:00.051+01:00
1 2016-06-13T00:00:00.718+01:00
2 2016-06-13T00:00:00.985+01:00
3 2016-06-13T00:00:02.431+01:00
4 2016-06-13T00:00:02.737+01:00
0.Trong phần tiếp theo, bạn sẽ học cách sử dụng
Can only use .dt accessor with datetimelike values
5 accessor để truy cập các phần khác nhau từ đối tượng DateTime.Trích xuất các bộ phận ngày từ cột DateTime Pandas
Trong phần này, bạn sẽ thấy cách bạn có thể sử dụng gấu trúc để trích xuất các phần ngày khác nhau từ cột DateTime. Có một số tùy chọn khác nhau mà bạn có thể lấy từ cột DateTime.
Trích xuất một tháng từ cột DateTime Pandas
Bởi vì tháng có thể được trình bày theo một số cách khác nhau, chúng ta nên tìm hiểu làm thế nào chúng có thể được trích xuất tốt nhất.
Chúng ta có thể sử dụng các người truy cập sau:
5 sẽ trả lại tháng dưới dạng số từ 1 đến 12timestamp 0 2016-06-13T00:00:00.051+01:00 1 2016-06-13T00:00:00.718+01:00 2 2016-06-13T00:00:00.985+01:00 3 2016-06-13T00:00:02.431+01:00 4 2016-06-13T00:00:02.737+01:00
0 sẽ trả lại Tháng địa phương có tên, cho phép bạn vượt qua ở một địa điểm khác0 2016-06-12 23:00:00.051 1 2016-06-12 23:00:00.718 2 2016-06-12 23:00:00.985 3 2016-06-12 23:00:02.431 4 2016-06-12 23:00:02.737
1 sẽ trả lại phiên bản viết tắt của tên tháng0 2016-06-12 23:00:00.051 1 2016-06-12 23:00:00.718 2 2016-06-12 23:00:00.985 3 2016-06-12 23:00:02.431 4 2016-06-12 23:00:02.737
Hãy để xem những gì nó trông như thế nào:
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
4Trong phần tiếp theo, bạn sẽ học cách trích xuất một ngày trong tuần từ cột DateTime.
Trích xuất một ngày trong tuần từ cột Datetime Pandas
Ngoài ra còn có nhiều cách khác nhau để đại diện cho các ngày trong tuần. Ví dụ, chúng ta có thể đại diện cho chúng như một con số - nhưng ngay cả điều này có thể được thực hiện theo những cách khác nhau. Nếu không, chúng có thể được biểu diễn dưới dạng một chuỗi của tên ngày trong tuần. Cuối cùng, chúng có thể được đại diện dưới dạng số ngày trong tháng hoặc trong năm.
Chúng ta có thể sử dụng các thuộc tính sau để truy cập thông tin ngày trong tuần:
6 Trả về số ngày trong tuần bắt đầu từ 0 cho thứ Haitimestamp 0 2016-06-13T00:00:00.051+01:00 1 2016-06-13T00:00:00.718+01:00 2 2016-06-13T00:00:00.985+01:00 3 2016-06-13T00:00:02.431+01:00 4 2016-06-13T00:00:02.737+01:00
3 Trả về tên của ngày dựa trên một địa điểm nhất định0 2016-06-12 23:00:00.051 1 2016-06-12 23:00:00.718 2 2016-06-12 23:00:00.985 3 2016-06-12 23:00:02.431 4 2016-06-12 23:00:02.737
4 trả về số ngày vào thángtimestamp 0 2016-06-13T00:00:00.051+01:00 1 2016-06-13T00:00:00.718+01:00 2 2016-06-13T00:00:00.985+01:00 3 2016-06-13T00:00:02.431+01:00 4 2016-06-13T00:00:02.737+01:00
5 trả về số ngày vào năm0 2016-06-12 23:00:00.051 1 2016-06-12 23:00:00.718 2 2016-06-12 23:00:00.985 3 2016-06-12 23:00:02.431 4 2016-06-12 23:00:02.737
Hãy để xem cách chúng ta có thể sử dụng những thứ này để trích xuất thông tin:
import datetime as dt
df['timestamp'] = df['timestamp'].apply[lambda x : pd.to_datetime[str[x]]]
df['dates'] = df['timestamp'].dt.date
5Sự kết luận
Trong hướng dẫn này, bạn đã học cách sử dụng gấu trúc để trích xuất một ngày từ cột DateTime bằng cách sử dụng trình truy cập
Can only use .dt accessor with datetimelike values
6. Bạn đã học được cách những người truy cập này hoạt động và các loại dữ liệu mà họ quay lại. Bạn cũng đã học cách trích xuất thông tin tháng từ cột DateTime cũng như thông tin trong tuần.Để tìm hiểu thêm về người truy cập Pandas
Can only use .dt accessor with datetimelike values
6, hãy xem tài liệu chính thức ở đây.Tài nguyên bổ sung
Để tìm hiểu về các chủ đề liên quan, hãy xem các hướng dẫn sau:
- Tạo phạm vi ngày với gấu trúc
- Pandas: Thêm ngày vào cột ngày
- Chuyển đổi chuỗi Python cho đến ngày: Chức năng Strptime Python