Hướng dẫn extract date from timestamp python pandas - trích xuất ngày từ gấu trúc trăn dấu thời gian

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 sau

2016-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 sau

Can 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
0

CHỈ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 hoạt động trên các cột loại
            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 và cho phép chúng tôi truy cập vào lượng dữ liệu khổng lồ. Khi chúng tôi áp dụng Trình truy cập trên một chuỗi, các giá trị được trả về là một chuỗi có cùng các chỉ số với giá trị được áp dụng cho nó. Điều này cho phép chúng tôi dễ dàng trích xuất các giá trị như DateTime cho toàn bộ cột. Hơn nữa, sau đó chúng ta có thể dễ dàng lọc dữ liệu của mình dựa trên các giá trị này.
Trong phần tiếp theo, bạn sẽ thấy một số người truy cập DateTime phổ biến mà bạn có thể sử dụng trong gấu trúc.
Trình truy cập DateTime phổ biến để trích xuất trong gấu trúcCá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
            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
1
Số tuầ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
2
Giá trị năm, được trả lại như một số nguyê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
3
Ngày không có giá trị thời gian
            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
4
Ngày của tháng, được trả lại dưới dạng giá trị từ 1 đến 31
            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
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
6

Ngà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
0

Chú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

df['timestamp'] = df['timestamp'].apply(lambda x : pd.to_datetime(str(x)))
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:

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
2

Chú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
3

Chú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:

  •             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
    
    5 sẽ trả lại tháng dưới dạng số từ 1 đến 12
  • 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
    
    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ác
  • 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
    
    1 sẽ trả lại phiên bản viết tắt của tên tháng

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
4

Trong 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:

  •             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
    
    6 Trả về số ngày trong tuần bắt đầu từ 0 cho thứ Hai
  • 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
    
    3 Trả về tên của ngày dựa trên một địa điểm nhất định
  •             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
    
    4 trả về số ngày vào tháng
  • 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
    
    5 trả về số ngày vào năm

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
5

Sự 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

Làm cách nào để trích xuất một ngày từ dấu thời gian trong Python?

Bạn có thể chỉ cần sử dụng chức năng FromTimestamp từ mô -đun DateTime để nhận ngày từ dấu thời gian UNIX. Hàm này lấy dấu thời gian làm đầu vào và trả về đối tượng DateTime tương ứng cho dấu thời gian.use the fromtimestamp function from the DateTime module to get a date from a UNIX timestamp. This function takes the timestamp as input and returns the corresponding DateTime object to timestamp.

Làm cách nào để trích xuất ngày từ dấu thời gian?

Có 4 phương pháp để trích xuất ngày từ dấu thời gian excel:..
(01) bằng cách sử dụng văn bản cho các cột ;.
(02) Bằng cách sử dụng hàm int () ..
(03) bằng cách sử dụng hàm trunc () ..
(04) bằng cách sử dụng hàm concatenate () ..

Làm cách nào để trích xuất một ngày từ Datetime DataFrame trong Python?

Syntax:..
DataFrame là DataFrame đầu vào ..
TO_DATETIME là hàm được sử dụng để chuyển đổi chuỗi DateTime thành DateTime ..
DateTime là cột DateTime trong DataFrame ..
dt.Normalize () là hàm được sử dụng để chuyển đổi DateTime cho đến nay ..
Cột ngày là cột mới để nhận ngày từ DateTime ..

Làm thế nào để tôi tách một dấu thời gian từ một ngày trong gấu trúc?

Phân chia DateTime trong thời gian và ngày pandas của mã..
Nhập Gandas dưới dạng PD ..
df = pd.read_csv (file_path).
df ['ngày'] = pd.to_dateTime (df ['ngày']).dt.ngày..
df ['thời gian'] = pd.to_dateTime (df ['ngày']).dt.thời gian..