Python là một ngôn ngữ tuyệt vời để thực hiện phân tích dữ liệu, chủ yếu là do hệ sinh thái tuyệt vời của các gói python tập trung vào dữ liệu. Pandas là một trong những gói đó và giúp việc nhập và phân tích dữ liệu dễ dàng hơn nhiều
Hàm Pandas
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:1 trả về thời gian được biểu thị bằng số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970. Khoảnh khắc không đó được gọi là kỷ nguyên
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
cú pháp. dấu thời gian. dấu thời gian[]
Thông số. Không có
Trở lại. số giây kể từ thời điểm không
Ví dụ 1. Sử dụng hàm
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:2 để trả về số giây đã trôi qua kể từ thời điểm 0 đối với đối tượng Dấu thời gian đã cho
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:3
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:4
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:5
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:6
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:7
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:8
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
df['date'] = pd.to_datetime[df['date'],unit='s']
0from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:21
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:22
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:24
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:25
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:27
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:28
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:29
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:30
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:32
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:33
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:35
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:36
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:9
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:38
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:39
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:6
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:41
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:42
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:43
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
đầu ra
Bây giờ chúng ta sẽ sử dụng hàm
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:2 để tìm số giây đã trôi qua
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:45
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:46
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
đầu ra
Như chúng ta có thể thấy ở đầu ra, hàm
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:2 đã trả về một giá trị float cho biết đã nhiều giây trôi qua kể từ kỷ nguyên cho đối tượng Dấu thời gian đã cho
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
Hãy nhớ rằng, tất cả các biến thể cho định dạng dấu thời gian mà bạn có thể chọn, bạn có thể tìm thấy chúng trong liên kết này. strftime
Hãy tự mình thử. Bắt đầu từ DataFrame được tạo ví dụ này
df = pd.DataFrame[{'date': ['2018-08-09 11:10:55','2019-03-02 13:15:21']}]
Thay đổi loại cột — từ Đối tượng/Chuỗi thành Ngày giờ
# 4 possible options# 1
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Ví dụ [chúng tôi chỉ thử một trong 4 tùy chọn, nhưng tất cả chúng đều hoạt động]
df = pd.DataFrame[{'date': ['2018-08-09 11:10:55','2019-01-02 13:15:21']}]df
df.dtypesdf['date'] = pd.to_datetime[df['date']]
df
df.dtypes
đầu ra
Chuyển từ định dạng Chuỗi sang Ngày và từ định dạng Ngày sang Chuỗi
Ví dụ với các biến bị cô lập
from dateutil.parser import parsestr_date = '2018-05-01'# String to Date:
date_1 = parse[str_date]
print ['date_1: ',date_1, type[date_1]]# Date to String:
date_2 = date_1.strftime['%Y-%m-%d']
print ['date_2: ',date_2, type[date_2]]
đầu ra
Từ thời gian Unix/Epoch sang định dạng ngày có thể đọc được
df['date'] = pd.to_datetime[df['date'],unit='s']
Ví dụ
df = pd.DataFrame[{'date': [1349720105,1349806505]}]dfdf['date'] = pd.to_datetime[df['date'],unit='s']df
Đầu ra [trước và sau]
Cộng và trừ ngày tháng
Sử dụng Timedelta. Ví dụ
from datetime import datetime, timedelta
from dateutil.parser import parseparse['2019-04-07'] — timedelta[days=3]# or, to get it as a string
[parse['2019-04-07'] — timedelta[days=3]].strftime['%Y-%m-%d']
đầu ra
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
0Nhận sự khác biệt giữa hai ngày
Chuyển đổi cả hai chuỗi thành định dạng ngày, rồi thực hiện phép tính. Ví dụ
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
1đầu ra
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
2Các phép toán với ngàyNhận ngày từ một ngày
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
3đầu ra
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
4Hoạt động với tuần
Lấy số tuần trong năm
Ví dụ
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
5đầu ra
[*] Để tạo cột Tuần theo định dạng yyyy-ww, hãy sử dụng
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
6Và đối với một biến bị cô lập
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
7đầu ra
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
8Nhận ngày trong tuần
Ví dụ
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x].strftime['%Y-%m-%d']]
9đầu ra
Chuyển từ định dạng Năm-Tuần sang định dạng yyyy-mm-dd [lấy ngày đầu tiên và ngày cuối cùng của tuần]
Ví dụ. bạn muốn biết ngày nào bắt đầu và kết thúc từ tuần thứ 37 trong năm 2018
# 4 possible options# 170
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Đầu ra [một bộ có đầu và cuối tuần]
# 4 possible options# 171
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Hoạt động theo tháng
Lấy số tháng trong năm
Ví dụ
# 4 possible options# 172
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
đầu ra
Và đối với một biến bị cô lập
# 4 possible options# 173
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
đầu ra
# 4 possible options# 174
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
[*] Để tạo cột tháng theo định dạng YYYY-MM, sử dụng
# 4 possible options# 175
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Cộng hoặc trừ các tháng [quay lại hoặc chuyển tiếp X tháng]
Sử dụng chức năng này
# 4 possible options# 176
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Ví dụ [trừ 4 tháng cho một ngày nhất định]
# 4 possible options# 177
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Đầu ra [hiển thị cùng một ngày, nhưng 4 tháng trước]
# 4 possible options# 178
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Hoạt động với năm
Nhận năm
Ví dụ
# 4 possible options# 179
df['date'] = pd.to_datetime[df['date']]
# 2
df['date'] = df['date'].astype['datetime64[ns]']
# 3
df['date'] = df['date'].apply[lambda x: parse[x]]
# 4
df['date'] = df['date'].apply[lambda x: pd.Timestamp[x]]
Và đối với một biến bị cô lập
df = pd.DataFrame[{'date': ['2018-08-09 11:10:55','2019-03-02 13:15:21']}]
0đầu ra
df = pd.DataFrame[{'date': ['2018-08-09 11:10:55','2019-03-02 13:15:21']}]
1Tạo phạm vi dữ liệuTạo phạm vi ngày tuần tự
Ví dụ. tạo phạm vi ngày từ 01/01/2019 đến 02/01/2019, với tần suất hàng giờ
df = pd.DataFrame[{'date': ['2018-08-09 11:10:55','2019-03-02 13:15:21']}]
2Xem tùy chọn khác nhau cho các tần số tại đây
Tạo phạm vi ngày ngẫu nhiên
df = pd.DataFrame[{'date': ['2018-08-09 11:10:55','2019-03-02 13:15:21']}]
3Đây là nguồn cho chức năng này
Từ đó, chúng ta có thể tạo ngày ngẫu nhiên. Ví dụ: hãy tạo danh sách 10 dấu thời gian ngẫu nhiên giữa Giáng sinh và năm mới