我有一個日期串列
[datetime.date(2021, 1, 7), datetime.date(2021, 1, 14), datetime.date(2021, 1, 21), datetime.date(2021, 1, 28), datetime.date(2021, 2, 4), datetime.date(2021, 2, 11), datetime.date(2021, 2, 18), datetime.date(2021, 2, 25), datetime.date(2021, 3, 4), datetime.date(2021, 3, 10), datetime.date(2021, 3, 18), datetime.date(2021, 3, 25), datetime.date(2021, 4, 1), datetime.date(2021, 4, 8), datetime.date(2021, 4, 15), datetime.date(2021, 4, 22), datetime.date(2021, 4, 29), datetime.date(2021, 5, 6), datetime.date(2021, 5, 12), datetime.date(2021, 5, 20), datetime.date(2021, 5, 27), datetime.date(2021, 6, 3)]
我想減少每個日期至少 2 天,比如 -
datetime.date(2021, 1, 7) = datetime.date(2021, 1, 6), datetime.date(2021, 1, 5)
這是我的全部代碼 -
before_dates = []
for dates in expiry_list:
Date = pd.date_range(pd.to_datetime(dates), periods=3).date
before_dates.append(Date)
此時我正在使用這個代碼,它是增量日期 -
Date = pd.date_range(pd.to_datetime(dates), periods=3).date
但是此代碼只是將日期增加到 3 天 - 示例 -
[array([datetime.date(2021, 1, 7), datetime.date(2021, 1, 8),
datetime.date(2021, 1, 9)], dtype=object),
array([datetime.date(2021, 1, 14), datetime.date(2021, 1, 15),
datetime.date(2021, 1, 16)], dtype=object),
array([datetime.date(2021, 1, 21), datetime.date(2021, 1, 22),
datetime.date(2021, 1, 23)], dtype=object),
array([datetime.date(2021, 1, 28), datetime.date(2021, 1, 29),
datetime.date(2021, 1, 30)], dtype=object)]
但我希望這個輸出采用這種減量格式 - 示例 -
[array([datetime.date(2021, 1, 7), datetime.date(2021, 1, 6),
datetime.date(2021, 1, 5)], dtype=object),
array([datetime.date(2021, 1, 14), datetime.date(2021, 1, 13),
datetime.date(2021, 1, 12)], dtype=object),
array([datetime.date(2021, 1, 21), datetime.date(2021, 1, 20),
datetime.date(2021, 1, 19)], dtype=object),
array([datetime.date(2021, 1, 28), datetime.date(2021, 1, 27),
datetime.date(2021, 1, 26)], dtype=object)]
所以請幫我解決這個問題。
uj5u.com熱心網友回復:
您可以 直接使用List Comprehensions
import datetime
dates = [datetime.date(2021, 1, 7), datetime.date(2021, 1, 14), datetime.date(2021, 1, 21), datetime.date(2021, 1, 28), datetime.date(2021, 2, 4), datetime.date(2021, 2, 11), datetime.date(2021, 2, 18), datetime.date(2021, 2, 25), datetime.date(2021, 3, 4), datetime.date(2021, 3, 10), datetime.date(2021, 3, 18), datetime.date(2021, 3, 25), datetime.date(2021, 4, 1), datetime.date(2021, 4, 8), datetime.date(2021, 4, 15), datetime.date(2021, 4, 22), datetime.date(2021, 4, 29), datetime.date(2021, 5, 6), datetime.date(2021, 5, 12), datetime.date(2021, 5, 20), datetime.date(2021, 5, 27), datetime.date(2021, 6, 3)]
new_dates = [[data - datetime.timedelta(days=i) for i in range(3)] for data in dates]
print(new_dates)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/432148.html
