Hướng dẫn convert timestamp to hours python - chuyển đổi dấu thời gian thành giờ python

Tôi cần phân loại dấu thời gian dựa trên giờ, ví dụ nếu đến từ 7 giờ sáng đến 9 giờ sáng, đó sẽ là buổi sáng. Tôi có dấu thời gian mà tôi lấy từ tệp CSV của mình và tôi chỉ cần nhận chỉ giờ để tôi có thể phân loại số với các câu lệnh IF.

Tôi sẽ lấy dấu thời gian từ cột ngày và tạo một cột mới có tên giờ,date column and create a new column named hour,

df['hour'] = df.date.dt.hour

Nhưng nó cho tôi lỗi sau: Thuộc tính horror: Chỉ có thể sử dụng .DT accessor với giá trị datetimelikeAttributeError: Can only use .dt accessor with datetimelike values

Dấu thời gian giống như sau: 2016-03-14 17:24:55

Đã hỏi ngày 18 tháng 3 năm 2019 lúc 20:06Mar 18, 2019 at 20:06

Hướng dẫn convert timestamp to hours python - chuyển đổi dấu thời gian thành giờ python

1

Tôi không chắc loại đối tượng nào là df nhưng bạn có thể chuyển đổi dấu thời gian thành đối tượng datetime và sau đó sử dụng các thuộc tính của các đối tượng DateTime để truy cập các thuộc tính dấu thời gian:

from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour

Bạn có thể đọc thêm về mô -đun datetime tại liên kết này

Đã trả lời ngày 18 tháng 3 năm 2019 lúc 21:00Mar 18, 2019 at 21:00

Bagljasbagljasbagljas

7535 Huy hiệu bạc13 Huy hiệu Đồng5 silver badges13 bronze badges

Bạn cần chuyển đổi cột 'Ngày' của mình thành đối tượng DataTime trước:

df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour

Đã trả lời ngày 18 tháng 3 năm 2019 lúc 21:10Mar 18, 2019 at 21:10

Hướng dẫn convert timestamp to hours python - chuyển đổi dấu thời gian thành giờ python

NathannathanNathan

4112 Huy hiệu bạc12 Huy hiệu đồng2 silver badges12 bronze badges

Bạn cần tạo một đối tượng datetime với chuỗi dấu thời gian được trích xuất từ ​​dữ liệu đầu vào CSV của bạn:

In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17

Đã trả lời ngày 18 tháng 3 năm 2019 lúc 21:10Mar 18, 2019 at 21:10

Nathannathan

4112 Huy hiệu bạc12 Huy hiệu đồng

Bạn cần tạo một đối tượng datetime với chuỗi dấu thời gian được trích xuất từ ​​dữ liệu đầu vào CSV của bạn:

data['start_datetime'] = pd.to_datetime(data['start_datetime'], format=datetime_format)
h = data['start_datetime'].dt.hour
m = data['start_datetime'].dt.minute
s = data['start_datetime'].dt.second

Lý do tại sao bạn nhận được một

from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour
2 rất có thể vì chuỗi cụ thể đó không thuộc loại đối tượng datetime.Apr 8, 2020 at 4:22

Hướng dẫn convert timestamp to hours python - chuyển đổi dấu thời gian thành giờ python

Có nhiều cách làm thế nào bạn có thể chuyển đổi dấu thời gian sang dạng người có thể đọc được trong Python. Đối với chuyển đổi này, bạn có thể sử dụng mô -đun DateTime hoặc thời gian.

Sử dụng mô -đun DateTime

Mô -đun DateTime cung cấp các lớp để thao tác ngày và thời gian theo cách định hướng đối tượng hơn.


import datetime
readable = datetime.datetime.fromtimestamp(1668768391).isoformat()
print(readable)
# 2022-11-18T11:46:31+01:00

Sử dụng thời gian mô -đun

Một khả năng khác để sử dụng chức năng

from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour
6 từ mô -đun
from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour
7.


import time
readable = time.ctime(1668768391)
# Fri Nov 18 11:46:31 2022

Định dạng

Đối với định dạng có thể đọc được tùy chỉnh của con người, bạn có thể sử dụng chức năng

from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour
8.


import time
ts = time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S", ts))
# 2022-11-18 11:46:31

print(time.strftime("%x %X", ts))
# 11/18/22 11:46:31

# Iso Format
print(time.strftime("%c", ts))
# Fri Nov 18 11:46:31 2022

# Unix timestamp
print(time.strftime("%s", ts))
# 1668768391
Chỉ thịNghĩa
from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour
9
Tên địa phương viết tắt tên ngày trong tuần.
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
0
Tên đầy đủ của địa phương.
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
1
Địa phương từ viết tắt tên tháng.
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
2
Tên đầy đủ của Locale.
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
3
Đại diện ngày và thời gian thích hợp của địa phương.
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
4
Ngày trong tháng dưới dạng số thập phân [01,31].
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
5
Giờ (đồng hồ 24 giờ) dưới dạng số thập phân [00,23].
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
6
Giờ (đồng hồ 12 giờ) dưới dạng số thập phân [01,12].
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
7
Ngày trong năm dưới dạng số thập phân [001.366].
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
8
Tháng dưới dạng số thập phân [01,12].
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
9
Phút như một số thập phân [00,59].
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
0
Locale từ tương đương với AM hoặc PM.
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
1
Thứ hai là một số thập phân [00,61].
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
2
Số tuần của năm (Chủ nhật là ngày đầu tiên trong tuần) dưới dạng số thập phân [00,53]. 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.
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
3
Ngày trong tuần là một số thập phân [0 (Chủ nhật), 6].
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
4
Số tuần của năm (thứ Hai là ngày đầu tiên trong tuần) dưới dạng số thập phân [00,53]. 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.
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
5
Đại diện ngày thích hợp của địa phương.
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
6
Đại diện thời gian thích hợp của địa phương.
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
7
Năm không có thế kỷ như một số thập phân [00,99].
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
8
Năm với thế kỷ như một số thập phân.
In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
9
Tên múi giờ (không có ký tự nếu không có múi giờ tồn tại).
data['start_datetime'] = pd.to_datetime(data['start_datetime'], format=datetime_format)
h = data['start_datetime'].dt.hour
m = data['start_datetime'].dt.minute
s = data['start_datetime'].dt.second
0
Một ký tự
data['start_datetime'] = pd.to_datetime(data['start_datetime'], format=datetime_format)
h = data['start_datetime'].dt.hour
m = data['start_datetime'].dt.minute
s = data['start_datetime'].dt.second
1 theo nghĩa đen.