Chuyển đổi cột chuỗi thành datetime python

Khi thực hiện phân tích dữ liệu, điều quan trọng là đảm bảo các loại dữ liệu chính xác. Nếu không, bạn có thể nhận được kết quả hoặc lỗi không mong muốn. Ngày giờ là kiểu dữ liệu phổ biến trong các dự án khoa học dữ liệu và dữ liệu thường được lưu dưới dạng số hoặc chuỗi. Trong quá trình phân tích dữ liệu, bạn có thể sẽ cần chuyển đổi chúng thành kiểu ngày giờ một cách rõ ràng

Bài viết này sẽ thảo luận về cách chuyển đổi số và chuỗi thành kiểu ngày giờ. Cụ thể hơn, bạn sẽ học cách sử dụng các phương pháp tích hợp sẵn của Pandas

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 và
>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 để giải quyết các vấn đề phổ biến sau

  1. Chuyển đổi số thành ngày giờ
  2. Chuyển đổi chuỗi thành datetime
  3. Xử lý định dạng ngày đầu tiên
  4. Xử lý định dạng ngày giờ tùy chỉnh
  5. Xử lý lỗi phân tích cú pháp
  6. Xử lý các giá trị còn thiếu
  7. Lắp ráp datetime từ nhiều cột
  8. Chuyển đổi nhiều cột cùng một lúc
  9. Phân tích cú pháp cột ngày khi đọc tệp CSV
  10. Sự khác biệt giữa
    >>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
    1 2016-11-26 21:30:05
    2 2017-03-22 15:16:45
    Name: date, dtype: datetime64[ns]
    0 và
    >>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
    1 2016-11-26 21:30:05
    2 2017-03-22 15:16:45
    Name: date, dtype: datetime64[ns]
    9

Vui lòng kiểm tra Notebook để biết mã nguồn

1. Chuyển đổi số thành ngày giờ

Pandas có 2 phương thức tích hợp sẵn là

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 và
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 có thể được sử dụng để chuyển đổi số thành ngày giờ. Chẳng hạn, để chuyển đổi số biểu thị thứ hai thành ngày giờ

df = pd.DataFrame({'date': [1470195805, 1480195805, 1490195805],
'value': [2, 3, 4]})

Khi sử dụng

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 , chúng ta cần gọi nó từ Pandas và đặt đối số là
>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
6

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]

Khi sử dụng

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 , chúng ta cần gọi nó từ Sê-ri (cột ngày) và chuyển vào ____1_______8

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]

Tương tự, chúng ta có thể chuyển đổi các số biểu thị các đơn vị khác (_______1_______9,

df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
0,
df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
1,
df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
2,
df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
3) thành ngày giờ, ví dụ, các số biểu thị ngày

df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
2. Chuyển đổi chuỗi thành datetime

Thông thường, bạn sẽ thấy rằng ngày tháng được biểu diễn dưới dạng chuỗi. Trong Pandas, các chuỗi được hiển thị dưới dạng đối tượng, đó là biệt ngữ nội bộ của Pandas cho chuỗi

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object

Cả

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 và
>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 đều có thể được sử dụng để chuyển đổi chuỗi thành ngày giờ

>>> pd.to_datetime(df['date'])0   2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64')0 2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
3. Xử lý định dạng ngày đầu tiên

Theo mặc định,

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 sẽ phân tích các chuỗi có định dạng tháng đầu tiên (MM/DD, MM DD hoặc MM-DD) và cách sắp xếp này tương đối độc đáo ở Hoa Kỳ

Ở hầu hết các nơi trên thế giới, ngày được viết trước (DD/MM, DD MM hoặc DD-MM). Nếu bạn muốn Pandas xem xét ngày đầu tiên thay vì tháng, bạn có thể đặt đối số

df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
7 thành
df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
8

df = pd.DataFrame({'date': ['3/10/2000', '3/11/2000', '3/12/2000'],
'value': [2, 3, 4]})
df['date'] = pd.to_datetime(df['date'], dayfirst=True)

Hình ảnh của tác giả

Ngoài ra, bạn chuyển định dạng tùy chỉnh cho đối số

df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
9

4. Xử lý định dạng ngày giờ tùy chỉnh

Theo mặc định, các chuỗi được phân tích cú pháp bằng trình phân tích cú pháp tích hợp sẵn của Pandas từ

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
0. Đôi khi, chuỗi của bạn có thể ở định dạng tùy chỉnh, ví dụ: YYYY-d-m HH. MM. SS. Pandas
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 có một đối số được gọi là
df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
9 cho phép bạn chuyển một định dạng tùy chỉnh

df = pd.DataFrame({'date': ['2016-6-10 20:30:0', 
'2016-7-1 19:45:30',
'2013-10-12 4:5:1']
,
'value': [2, 3, 4]})
df['date'] = pd.to_datetime(df['date'], format="%Y-%d-%m %H:%M:%S")

Hình ảnh của tác giả4. Xử lý lỗi phân tích cú pháp

Nếu một ngày không đáp ứng, chúng tôi sẽ nhận được ParseError khi chuyển đổi. Chẳng hạn, một chuỗi không hợp lệ

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
3

df = pd.DataFrame({'date': ['3/10/2000', 'a/11/2000', '3/12/2000'],
'value': [2, 3, 4]})
# Getting ParseError
df['date'] = pd.to_datetime(df['date'])

hình ảnh của tác giả

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 có một đối số được gọi là
>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
5 cho phép bạn bỏ qua lỗi hoặc buộc một giá trị không hợp lệ thành
>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
6

df['date'] = pd.to_datetime(df['date'], errors='ignore')
df

Hình ảnh của tác giả

Và để buộc một giá trị không hợp lệ thành

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
6

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0

Hình ảnh của tác giả6. Xử lý các giá trị còn thiếu

Trong Pandas, các giá trị bị thiếu được gán giá trị

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
8, viết tắt của “Không phải là số”

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
1

Khi chuyển đổi một cột có giá trị bị thiếu thành datetime, cả to_datetime() và astype() đều đang thay đổi Numpy’s

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
8 thành Pandas’
>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
6 và điều này cho phép nó trở thành một datetime

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
2

Ngoài ra, chúng ta có thể thay thế Numpy

>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
8 bằng một giá trị khác (ví dụ: thay thế
>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
8 bằng_______22_______3)

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
3

Để tìm hiểu thêm về cách làm việc với các giá trị bị thiếu

Làm việc với các giá trị còn thiếu trong Pandas

Hướng dẫn về giá trị bị thiếu trong Pandas và cách sử dụng các phương thức tích hợp sẵn để xử lý chúng

hướng tới khoa học dữ liệu. com

7. Lắp ráp một datetime từ nhiều cột

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 cũng có thể được sử dụng để tập hợp một ngày giờ từ nhiều cột. Các khóa (nhãn cột) có thể là các từ viết tắt phổ biến như ['year', 'month', 'day', 'minute', 'second', 'ms', 'us', 'ns']) hoặc số nhiều của các từ giống nhau

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
4

Để tạo một cột ngày giờ từ một tập hợp con các cột

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
5

Để tạo một cột ngày giờ từ toàn bộ Khung dữ liệu

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
68. Chuyển đổi nhiều cột cùng một lúc

Cho đến nay, chúng tôi đã chuyển đổi loại dữ liệu một cột tại một thời điểm. Có một phương thức DataFrame còn có tên là

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 cho phép chúng ta chuyển đổi nhiều kiểu dữ liệu cột cùng một lúc. Tiết kiệm thời gian khi bạn có nhiều cột muốn thay đổi

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
79. Phân tích cú pháp cột ngày khi đọc tệp CSV

Nếu bạn muốn đặt kiểu dữ liệu cho từng cột khi đọc tệp CSV, bạn có thể sử dụng đối số

>>> pd.to_datetime(df['date'])0   2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64')0 2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
6 khi tải dữ liệu với
>>> pd.to_datetime(df['date'])0   2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64')0 2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
7

Lưu ý rằng kiểu dữ liệu

>>> pd.to_datetime(df['date'])0   2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64')0 2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
8 không được hỗ trợ bởi
>>> pd.to_datetime(df['date'])0   2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64')0 2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
9 và chúng ta nên sử dụng đối số
df = pd.DataFrame({'date': ['3/10/2000', '3/11/2000', '3/12/2000'],
'value': [2, 3, 4]})
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
0 để thay thế

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
8

Để tìm hiểu thêm về cách phân tích cột ngày với Pandas

>>> pd.to_datetime(df['date'])0   2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64')0 2015-03-10
1 2015-03-11
2 2015-03-12
Name: date, dtype: datetime64[ns]
7

4 thủ thuật bạn nên biết để phân tích cột ngày với Pandas read_csv()

Một số thủ thuật Pandas hữu ích nhất

hướng tới khoa học dữ liệu. com

10. Sự khác biệt giữa
df = pd.DataFrame({'date': ['3/10/2000', '3/11/2000', '3/12/2000'],
'value': [2, 3, 4]})
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
2 và
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 là phương pháp phổ biến để chuyển đổi kiểu dữ liệu từ loại này sang loại khác. Phương pháp này được hỗ trợ bởi cả Pandas DataFrame và Series. Nếu bạn cần chuyển đổi nhiều cột, thì
>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 sẽ là lựa chọn đầu tiên vì nó

  • có thể chuyển đổi nhiều cột cùng một lúc
  • có hiệu suất tốt nhất (hiển thị trong ảnh chụp màn hình bên dưới)

Tuy nhiên,

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 sẽ không hoạt động đối với cột có dữ liệu không hợp lệ. Chẳng hạn, một chuỗi ngày không hợp lệ
>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
3. Nếu chúng tôi cố gắng sử dụng
>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0, chúng tôi sẽ nhận được ParseError. Kể từ Pandas 0. 20. 0, lỗi này có thể được khắc phục bằng cách đặt đối số
df = pd.DataFrame({'date': ['3/10/2000', '3/11/2000', '3/12/2000'],
'value': [2, 3, 4]})
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
9 nhưng dữ liệu gốc của bạn sẽ được trả về nguyên vẹn

Hàm Pandas

>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 có thể xử lý các giá trị này dễ dàng hơn. Thay vì thất bại, chúng ta có thể đặt đối số
df = pd.DataFrame({'date': ['2016-6-10 20:30:0', 
'2016-7-1 19:45:30',
'2013-10-12 4:5:1']
,
'value': [2, 3, 4]})
df['date'] = pd.to_datetime(df['date'], format="%Y-%d-%m %H:%M:%S")
1 để ép buộc các giá trị không hợp lệ thành
>>> df = pd.DataFrame({'date':['3/10/2015','3/11/2015','3/12/2015'],
'value': [2, 3, 4]})
>>> df.dtypes
date object
value int64
dtype: object
6

Ngoài ra, có thể rất khó sử dụng

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 khi xử lý định dạng ngày giờ tùy chỉnh. Pandas
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 có một đối số được gọi là
df = pd.DataFrame({'date': [1470, 1480, 1490],
'value': [2, 3, 4]})
>>> pd.to_datetime(df['date'], unit='D')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
>>> df['date'].astype('datetime64[D]')0 1974-01-10
1 1974-01-20
2 1974-01-30
Name: date, dtype: datetime64[ns]
9 và cung cấp nhiều khả năng hơn theo cách chuyển đổi tùy chỉnh

Phần kết luận

Chúng ta đã thấy cách chúng ta có thể chuyển đổi cột dữ liệu Pandas thành kiểu ngày giờ với

>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 và
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9.
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 là cách đơn giản nhất và cung cấp khả năng xử lý lỗi cũng như nhiều khả năng hơn theo cách chuyển đổi tùy chỉnh, trong khi
>>> df['date'].astype('datetime64[s]')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
0 có hiệu suất tốt hơn và có thể chuyển đổi nhiều cột cùng một lúc

Tôi hy vọng bài viết này sẽ giúp bạn tiết kiệm thời gian trong việc học Pandas. Tôi khuyên bạn nên xem tài liệu về API

df = pd.DataFrame({'date': ['3/10/2000', 'a/11/2000', '3/12/2000'],
'value': [2, 3, 4]})
# Getting ParseError
df['date'] = pd.to_datetime(df['date'])
0 và
>>> pd.to_datetime(df['date'], unit='s')0   2016-08-03 03:43:25
1 2016-11-26 21:30:05
2 2017-03-22 15:16:45
Name: date, dtype: datetime64[ns]
9 và để biết về những điều khác mà bạn có thể làm

Cảm ơn vì đã đọc. Vui lòng kiểm tra sổ ghi chép để biết mã nguồn và tiếp tục theo dõi nếu bạn quan tâm đến khía cạnh thực tế của máy học

Làm cách nào để chuyển đổi cột chuỗi thành cột ngày giờ trong Python?

Nếu cột ngày của bạn là một chuỗi có định dạng '2017-01-01', bạn có thể sử dụng pandas astype để chuyển đổi nó thành ngày giờ. .
Thay đổi '2022–12–31 00. 00. 00' đến '2022–12–31 00. 00. 01'
Sau đó chạy mã này. gấu trúc. to_datetime(gấu trúc. Sê-ri(['2022–12–31 00. 00. 01']))
đầu ra. 2022–12–31 00. 00. 01

Làm cách nào để chuyển đổi một cột thành đối tượng ngày giờ?

Sử dụng hàm pandas to_datetime để phân tích cột thành DateTime . Ngoài ra, bằng cách sử dụng infer_datetime_format=True , nó sẽ tự động phát hiện định dạng và chuyển đổi cột được đề cập thành DateTime.

Làm cách nào để chuyển đổi chuỗi thành ngày giờ trong gấu trúc Python?

Sử dụng gấu trúc. phương thức to_datetime() được sử dụng để thay đổi thời gian của Chuỗi/Đối tượng thành loại ngày (datetime64[ns]) . Phương pháp này đủ thông minh để thay đổi các định dạng khác nhau của cột ngày Chuỗi thành ngày. Sản lượng dưới sản lượng.

Làm cách nào để chuyển đổi cột chuỗi thành ngày giờ trong PySpark?

Hàm to_date() trong Apache PySpark được sử dụng phổ biến để chuyển đổi Dấu thời gian thành ngày . Điều này chủ yếu đạt được bằng cách cắt bớt phần thời gian của cột Dấu thời gian. Hàm to_date() lấy Dấu thời gian làm đầu vào ở định dạng mặc định là "MM-dd-yyyy HH. mm. ss. SSS".