Почему я получаю эту ошибку:
Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'
При запуске этого блока кода:
quantity_list = df2['Qauntity'].tolist()
date_list = df2['Date'].tolist()
interpol = interpolate.interp1d(y = quantity_list,
x = date_list)
ynew = interpol(quantity_list)
plt.plot(date_list, ynew)
Строка, которая вызвала ошибку:
ynew = interpol(quantity_list)
Может ли это быть связано с уменьшением памяти в голове всей записной книжки?
Часть памяти.сокращение кода для переменных в приведенном выше коде :
#memory reducing
dtypes = {
'Date': 'object',
...
'Quantity': 'float32'
}
def reduce_mem_usage(df, verbose = True):
...
return df
numerics = ['int8', 'int16', 'int32', 'int64', 'float16', 'float32', 'float64']
numerical_columns = [c for c, v in dtypes.items() if v in numerics]
categorical_columns = [c for c, v in dtypes.items() if v not in numerics]
Это dtypes
Я имею в виду для набора данных при загрузке файла в Python.
Важно:
Также я изменяю 'Date'
с 'object'
на 'datetime64[ns]'
с df1['Date'] = pd.to_datetime(df1['Date'])
np.array(quantity_list)
производим float64
dtype np.array(date_list)
производим <U10
dtype
Если я выполняю такое же преобразование даты из тела кода, я получаю '<M8[ns]'
dtype.
Что это за магия?
Функция интерполяции Pandas работает нормально, но интерполяция Pandas и интерполяция Scipy дают другой результат (https://github.com/pandas-dev/pandas/issues/8796),, и мне нужен результат Scipy.