两天之间的日期差乘以浮点矢量化形式

问题描述 投票:0回答:1

我有一个函数,可以计算两个日期之间的差异,然后将其乘以比率。我想在一个例子中使用它,但也适用于矢量化格式的pd.Series进行大规模计算。目前它正在挂在(开始日期-结束日期)。天AttributeError:“系列”对象没有属性“天”

pddt = lambda x: pd.to_datetime(x)
def cost(start_date, end_date, cost_per_day)
    start_date=pddt(start_date)
    end_date=pddt(end_date)
    total_days = (end_date-start_date).days
    cost = total_days * cost_per_day
    return cost

a={'start_date': ['2020-07-01','2020-07-02'], 'end_date': ['2020-07-04','2020-07-10'],'cost_per_day': [2,1.5]}
df = pd.DataFrame.from_dict(a)

costs = cost(a.start_date, a.end_date, a.cost_per_day)

cost_adhoc = cost('2020-07-15', '2020-07-22',3)

如果我将其与系列一起运行,则会出现以下错误

AttributeError: 'Series' object has no attribute 'days'

如果我尝试通过添加.dt.days来纠正它,那么当我仅使用单个输入时,会出现以下错误

AttributeError: 'Timestamp' object has no attribute 'dt'
pandas vectorization timedelta floating
1个回答
0
投票

您可以更改功能

total_days = (end_date-start_date) / np.timedelta64(1, 'D')
© www.soinside.com 2019 - 2024. All rights reserved.