【发布时间】:2021-10-05 19:52:08
【问题描述】:
我有一个包含“开放日期”列的数据框,我需要计算今天与“开放日期”值之间的工作日。
我用“np.busday_count”处理了这一步
df['Aging'] = np.busday_count(df.Date_Open.values.astype('datetime64[D]'),np.datetime64('today'))
现在我需要在计算中包括假期。但是,假期日期因国家/地区而异。我找到的解决方案是创建一个列表字典,以 df["Country"] 作为键。结果是这样的:
holidays = {'BM': [numpy.datetime64('2021-09-06')],'BO': [numpy.datetime64('2021-09-14')], 'BR': [numpy.datetime64('2021-11-30')]}
问题是当我试图在“np.busday_count”函数的假日参数中使用这个字典时。我想使用数据框中“国家”列的值作为“假期”字典的键。我试过这个(只是一个例子):
df['Aging'] = np.busday_count(df.Date_Open.values.astype('datetime64[D]'),np.datetime64('today'),holidays[df.Country])
但它返回此错误:
TypeError: unhashable type: 'Series'
我想有一个解决方案,我不需要通过循环遍历每一行来计算日期差。
【问题讨论】:
标签: python pandas dataframe date