我试图找出直到特定日期的工作日数,并收到以下错误:
import numpy as np
import pandas_market_calendars as mcal
from datetime import datetime
import pandas as pd
nyse = mcal.get_calendar('NYSE')
holidays = nyse.holidays()
holidays = list(holidays.holidays) # NYSE Holidays
today = datetime.now()
expiration = datetime(2019,2,13,0,0)
days_to_expiration = np.busday_count(today,expiration,holidays=holidays)
print(days_to_expiration)
In [6]: days_to_expiration = np.busday_count(today,expiration,holidays=holidays)
Traceback (most recent call last):
File "<ipython-input-6-559c16b20339>", line 1, in <module>
days_to_expiration = np.busday_count(today,expiration,holidays=holidays)
TypeError: Iterator operand 0 dtype could not be cast from dtype('<M8[us]') to dtype('<M8[D]') according to the rule 'safe'
有什么想法吗?
最佳答案
您应该将日期传递给busday_count
而不是日期时间:
In [11]: today = datetime.now()
...: expiration = datetime(2019,2,13,0,0)
...:
...: days_to_expiration = np.busday_count(today.date(),expiration.date(),holidays=holidays)
...: print(days_to_expiration)
11
关于python - 脾气暴躁,TypeError : Could not be cast from dtype ('<M8[us]' ) to dtype ('<M8[D]' ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54435328/