Hướng dẫn convert string to time only in python - chỉ chuyển đổi chuỗi thành thời gian trong python

Tôi có các dữ liệu pandas sau đây trong Python 2.7.

import pandas as pd
trial_num = [1,2,3,4,5]
sail_rem_time = ['11:33:11','16:29:05','09:37:56','21:43:31','17:42:06']
dfc = pd.DataFrame(zip(*[trial_num,sail_rem_time]),columns=['Temp_Reading','Time_of_Sail'])
print dfc

DataFrame trông như thế này:

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06

DataFrame này đến từ một tệp *.csv. Tôi sử dụng gấu trúc để đọc trong tệp *.csv dưới dạng dữ liệu gấu trúc. Khi tôi sử dụng

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
7, nó cho tôi thấy rằng cột
  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
8 có kiểu dữ liệu
  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
9. Tôi muốn chuyển đổi cột này thành kiểu dữ liệu
dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
0 nhưng tôi chỉ muốn phần thời gian - tôi không muốn năm, tháng, ngày.

Tôi có thể thử điều này:

dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]

Nhưng vấn đề là khi tôi chạy

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
7, nó vẫn cho thấy cột
  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
8 là
  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
9.

Có cách nào để chuyển đổi cột này thành định dạng DateTime chỉ có thời gian không?

Thông tin thêm:

Để tạo dữ liệu trên và đầu ra, điều này cũng hoạt động:

import pandas as pd
trial_num = [1,2,3,4,5]
sail_rem_time = ['11:33:11','16:29:05','09:37:56','21:43:31','17:42:06']
data = [
    [trial_num[0],sail_rem_time[0]],
    [trial_num[1],sail_rem_time[1]],[trial_num[2],sail_rem_time[2]],
    [trial_num[3],sail_rem_time[3]]
    ]
dfc = pd.DataFrame(data,columns=['Temp_Reading','Time_of_Sail'])
dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
print dfc
print dfc.dtypes

Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm

dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
4. Hàm này có sẵn trong các mô -đun DateTime và Time để phân tích một chuỗi vào các đối tượng DateTime và thời gian tương ứng.

Python Strptime ()

Python strptime () là một phương thức lớp trong lớp DateTime. Cú pháp của nó là:

datetime.strptime(date_string, format)

Cả hai đối số là bắt buộc và nên là chuỗi. Hàm này hoàn toàn trái ngược với hàm

dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
5, chuyển đổi đối tượng DateTime thành một chuỗi. Chúng tôi cũng có sẵn chức năng tương tự trong mô -đun thời gian, trong đó cú pháp của nó là:

time.strptime(time_string[, format])

Ở đây hàm trả về đối tượng

dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
6. Nếu chuỗi định dạng không được cung cấp, nó mặc định là %A %b %d %h: %m: %s %y, phù hợp với định dạng được trả về bởi hàm ctime (). Nếu chuỗi đầu vào không thể được phân tích cú pháp theo định dạng được cung cấp, thì
dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
7 sẽ được nâng lên. Thông điệp ngoại lệ cung cấp chi tiết rõ ràng về vấn đề phân tích cú pháp.

Python Strptime () định dạng chỉ thị

Bảng sau chứa hầu hết các chỉ thị định dạng thường được sử dụng.

Chỉ thịSự mô tảVí dụ đầu ra
%mộtNgày trong tuần là tên viết tắt địa phương.Mặt trời, mon, xông, sat (en_us) Vì vậy, mo, triệt, sa (de_de)
%MỘTNgày trong tuần là tên đầy đủ của địa phương.Chủ nhật, Thứ Hai,, Thứ Bảy (EN_US) Sonntag, Montag, Mạnh, Samstag (de_de)
%wNgày trong tuần là một số thập phân, trong đó 0 là Chủ nhật và 6 là thứ bảy.0, 1, 2, 3, 4, 5, 6
%dNgày trong tháng dưới dạng số thập phân số không.01, 02,…, 31
%bTháng là tên địa phương viết tắt tên.Jan, tháng 2, xông, tháng 12 (en_us) tháng 1, tháng 2,
%BTháng dưới dạng tên đầy đủ của địa phương.Tháng 1, tháng 2,,, tháng 12 (en_us) Januar, Februar, xông, Dezember (de_de)
%mTháng dưới dạng số thập phân bằng không.01, 02… 12
%yNăm không có thế kỷ như một số thập phân số không.01, 02, 99 99
%YNăm với thế kỷ như một số thập phân.0001, 0002, xông, 9999
%HGiờ (đồng hồ 24 giờ) là một số thập phân bằng không.01, 02, xông, 23
%TÔIGiờ (đồng hồ 12 giờ) là một số thập phân bằng không.01, 02,…, 12
%PLocale từ tương đương với AM hoặc PM.AM, pm (en_us) AM, pm (de_de)
%MPhút như một số thập phân bằng không.01, 02, xông, 59
%SThứ hai là một số thập phân bằng không.01, 02, xông, 59
%SThứ hai là một số thập phân bằng không.%f
Microsecond như một số thập phân, không được dán bên trái.000000, 000001, xông, 999999 Không áp dụng với mô -đun thời gian.%z
UTC bù ở dạng ± hhmm [ss] (chuỗi trống nếu đối tượng là ngây thơ).(trống), +0000, -0400, +1030%Z
Tên múi giờ (chuỗi trống nếu đối tượng là ngây thơ).(trống), UTC, IST, CST%j
Ngày trong năm dưới dạng số thập phân không có viền.001, 002, xông, 366%U
Số tuần của năm (Chủ nhật là ngày đầu tiên trong tuần) là số thập phân số không có đệm. Tất cả các ngày trong một năm mới trước Chủ nhật đầu tiên được coi là vào tuần 0.00, 01, xông, 53%U
Số tuần của năm (Chủ nhật là ngày đầu tiên trong tuần) là số thập phân số không có đệm. Tất cả các ngày trong một năm mới trước Chủ nhật đầu tiên được coi là vào tuần 0.00, 01, xông, 53%W
Số tuần của năm (thứ Hai là ngày đầu tiên trong tuần) là một số thập phân. Tất cả các ngày trong một năm mới trước ngày thứ Hai đầu tiên được coi là vào tuần 0.%cĐại diện ngày và thời gian thích hợp của địa phương.
Tue ngày 16 tháng 8 21:30:00 1988 (EN_US) DI 16 tháng 8 21:30:00 1988 (de_de)%xĐại diện ngày thích hợp của địa phương.
16/08/88 (Không có) 08/16/1988 (EN_US) 16.08.1988 (DE_DE)%XĐại diện thời gian thích hợp của địa phương.

21:30:00 (EN_US) 21:30:00 (DE_DE)

%%

Một nhân vật ‘%theo nghĩa đen.

from datetime import datetime

datetime_str = '09/19/18 13:55:26'

datetime_object = datetime.strptime(datetime_str, '%m/%d/%y %H:%M:%S')

print(type(datetime_object))
print(datetime_object)  # printed in default format

Output:


2018-09-19 13:55:26

Phần trăm

Python Strptime () ví dụ

date_str = '09-19-2018'

date_object = datetime.strptime(date_str, '%m-%d-%Y').date()
print(type(date_object))
print(date_object)  # printed in default formatting

Output:


2018-09-19

Hãy cùng xem xét một số ví dụ cụ thể về hàm strptime () để chuyển đổi chuỗi thành các đối tượng DateTime và thời gian.

Chuỗi thành DateTime

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
0

Output:

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
1

Chuỗi cho đến ngày đối tượng

Chúng ta có thể sử dụng hàm date () cùng với hàm strptime () để chuyển đổi chuỗi thành đối tượng ngày.

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
2

Output:

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
3

Chuỗi đến đối tượng thời gian

Chúng ta có thể sử dụng hàm TIME () cùng với hàm strptime () để chuyển đổi chuỗi thành đối tượng thời gian.

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
4

Output:

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
5

Ví dụ về thời gian Python Strptime ()

Hãy cùng xem một số ví dụ về việc sử dụng hàm mô -đun thời gian ().

Ví dụ về ValueError của Python Strptime ()

  Temp_Reading Time_of_Sail
             1     11:33:11
             2     16:29:05
             3     09:37:56
             4     21:43:31
             5     17:42:06
6

Chúng ta có thể sử dụng khối Excet Try-Except để bắt giải phân tích ngoại lệ và thực hiện các hành động khắc phục.

Lưu ý rằng thông báo ValueError giải thích rõ ràng nguyên nhân gốc của ngoại lệ phân tích cú pháp.

Python chuyển đổi chuỗi thành DateTime với Locale