我正在尝试设计一个具有以下输入的np.where
参数
r_label = np.array([['Fiscal data as of Dec 31 2016', '2016', '2015', '2014'],
['Fiscal data as of Dec 31 2016', '2016', '2015', '2014']],
dtype='<U29')
x = pd.Int64Index([12, 12], dtype='int64')
r_values_count = 2
check = np.isnat(pd.to_datetime(r_label[:,1:][0], errors='coerce', format='%b %d %Y')).all()
if_true = [pd.to_datetime(r_label[:,1:][_], errors='coerce').map(lambda t: t.replace(month=x[_])) for _ in range(r_values_count)]
if_false = [pd.to_datetime(r_label[:,1:][_], errors='coerce', format='%b %d %Y') for _ in range(r_values_count)]
np.where(check, if_true, if_false)
但我收到错误ValueError: cannot convert float NaN to integer
。 np.where
参数的所有三个参数完全独立地工作,我无法理解为什么它现在在np.where
内工作,我如何找到代码产生错误的确切位置