Type Error: can't multiply sequence by non-int of type 'float'
означает именно то, что говорит.Вы не можете умножить тип данных, не являющийся числом (не целым числом), на тип данных с номером.Например, вы не можете умножать строки на число.
Приведенный выше код на самом деле работает.Но, поскольку вы получаете эту ошибку, я предполагаю, что приведенный выше код является просто прокси для вашего фактического кода.Итак, я расскажу, как я решил ту же ошибку, которую получил, когда делал что-то похожее.
Допустим, есть CSV-файл, содержащий метки субъекта для такого класса, как таблица.ниже
| | Maths | English |
| Adam | 98 | 78 |
| John | 34 | 89 |
Как видите, есть индекс строки, а также индекс столбца.Если вы запустите
marks = pd.read_csv("marks.csv")
marks
будет иметь 3 столбца с первым столбцом, содержащим имена студентов.Pandas
read предположил, что первый столбец был частью данных.Теперь, если вы умножите это на массив Numpy
, вы получите ошибку.Поскольку числа не могут быть умножены на строки.
Чтобы решить эту проблему, нам нужно явно указать pandas, что первый столбец в файле - это индекс строки.
marks = pd.read_csv("marks.csv", index_col=0)
Параметр index_col
указывает, какой столбец в файле следуетвзять в качестве индекса строки.Вы можете прочитать об этом подробно в их документации, здесь .