我有一列不同的日期,并想向資料框中添加另一列,以顯示該列中的日期與我設定的各種日期之間的差異。

enddate = date(2021, 10, 15)
會喜歡:

我在下面嘗試但確實回傳錯誤:
from dateutil.relativedelta import relativedelta
metric_df['term'] = relativedelta(metric_df['maturity'], enddate).years
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
uj5u.com熱心網友回復:
relativedelta 不會給你小數年 afaik,但你可以很容易地自己計算它們:
import pandas as pd
# dummy data
metric_df = pd.DataFrame({'maturity': ["9/22/2025", "11/10/2033", "3/1/2023"]})
# convert to datetime, so we can run calculations with date & time
metric_df['maturity'] = pd.to_datetime(metric_df['maturity'])
# to get fractional years, we calculate difference in days and divide
# by the average number of days per year:
metric_df['term'] = (metric_df['maturity'] -
pd.Timestamp("2021-10-15")).dt.days / 365.25
metric_df['term']
0 3.937029
1 12.071184
2 1.374401
Name: term, dtype: float64
uj5u.com熱心網友回復:
您是否考慮過使用日期時間減法?如果我有兩個日期或日期時間,我可以減去它們以產生一個timedelta物件,即
start_date = date(2021,01,01)
end_date = date(2021,01,03)
delta = end_date - start_date
print(delta.days) # Should print 2
您也可以對列執行此操作,從而生成一列timedelta物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331253.html
標籤:Python 熊猫 约会时间 时间增量 python-dateutil
