Мне нужно проверить, имеет ли столбец в моем фрейме данных тип «объект», а затем, основываясь на этой информации, изменить все значения в этом столбце на целое число.Вот функция, которую я написал для этого:
def multiply_by_scalar(self):
self.columns_to_index()
i = ask_user("What column would you like to multiply by a scalar? Please type in index:\n", int)
m = ask_user("Type in the value of the scalar:\n", int)
if self.df.columns[i] == np.object:
print("{} is of type 'object'. Scalar multiplication can only be applied to dtypes of type 'numeric'.".format(self.df.columns[i]))
c = ask_user("Would you like to convert column '{}' to type 'int'?".format(self.df.columns[i]))
if c in yes_values:
pd.to_numeric(self.df.columns[i])
self.df.columns[i] = self.df.columns[i].multiply(m)
print(self.df.columns[i])
else:
self.df.columns[i] = self.df.columns[i].multiply(m)
print(self.df.columns[i])
ПРИМЕЧАНИЕ. self.columns_to_index()
- это функция в программе, которая отображает каждое имя столбца в индекс, и это не важная информация для ответа на вопрос.
Когда я запускаю эту функцию, я получаю сообщение об ошибке:
AttributeError: 'str' object has no attribute 'multiply
Демонстрация того, что преобразование из строки в целое число не работает.