numpy ValueError:无法将float NaN转换为整数

时间:2017-09-20 21:50:42

标签: python pandas numpy where

我正在尝试设计一个具有以下输入的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 integernp.where参数的所有三个参数完全独立地工作,我无法理解为什么它现在在np.where内工作,我如何找到代码产生错误的确切位置

0 个答案:

没有答案