Computer >> Máy Tính >  >> Lập trình >> Python

Python - Cách kiểm tra ngày bị thiếu trong Gấu trúc

Để kiểm tra các ngày còn thiếu, trước tiên, hãy đặt từ điển danh sách với các bản ghi ngày tháng, tức là Ngày mua hàng trong ví dụ của chúng tôi -

# dictionary of lists
d = {'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
   'Date_of_purchase': ['2020-10-10', '2020-10-12', '2020-10-17', '2020-10-16', '2020-10-19', '2020-10-22']}

Bây giờ, hãy tạo khung dữ liệu từ danh sách từ điển ở trên -

dataFrame = pd.DataFrame(d)

Tiếp theo, đặt nó làm chỉ mục -

dataFrame = dataFrame.set_index('Date_of_purchase')

Sử dụng to_datetime () để chuyển đổi chuỗi thành đối tượng DateTime -

dataFrame.index = pd.to_datetime(dataFrame.index)

Hiển thị các ngày còn lại trong một phạm vi -

k = pd.date_range( start="2020-10-10", end="2020-10-22").difference(dataFrame.index);

Ví dụ

Sau đây là mã -

import pandas as pd

# dictionary of lists
d = {'Car': ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
   'Date_of_purchase': ['2020-10-10', '2020-10-12', '2020-10-17', '2020-10-16', '2020-10-19', '2020-10-22'] }

# creating dataframe from the above dictionary of lists
dataFrame = pd.DataFrame(d)
print"DataFrame...\n",dataFrame

# Date_of_purchase set as index
dataFrame = dataFrame.set_index('Date_of_purchase')

# using to_datetime() to convert string to DateTime object
dataFrame.index = pd.to_datetime(dataFrame.index)

# remaining dates displayed as output
print("\nDisplaying remaining dates from a range of dates...")
k = pd.date_range(start="2020-10-10", end="2020-10-22").difference(dataFrame.index);

print(k);

Đầu ra

Điều này sẽ tạo ra kết quả sau -

DataFrame...
         Car    Date_of_purchase
0       BMW           2020-10-10
1     Lexus           2020-10-12
2      Audi           2020-10-17
3  Mercedes           2020-10-16
4    Jaguar           2020-10-19
5   Bentley           2020-10-22

Displaying remaining dates from a range of dates...
DatetimeIndex(['2020-10-11', '2020-10-13', '2020-10-14', '2020-10-15',
   '2020-10-18', '2020-10-20', '2020-10-21'],
   dtype='datetime64[ns]', freq=None)