看到了一些关于一般性问题的答案,我使用了建议的一些解决方案,但仍然陷于困境。
我有以下代码:
name = ['Sepal-length', 'Sepal-width', 'Petal-length', 'Petal-width', 'Class']
iris_ds = pd.read_csv(url, names=name)
cols=iris_ds.columns.drop('Class')
iris_ds[cols]=iris_ds[cols].apply(pd.to_numeric, errors='coerce')
.......
iris_ds['Sepal-area'] = iris_ds.eval('Sepal-width' * 'Sepal-length')
print(iris_ds.head(20))
但是,当我运行第二部分的脚本时,会得到以下信息:
回溯(最近一次通话最后一次):文件“ Iris_Data_set1.py”,行 67,在 iris_ds ['Petal-area'] = iris_ds.eval('Petal-width'*'Petal-length')TypeError:无法将序列乘以非整数类型 'str'
数据类型如下:
长度为float64
宽度为float64
全长float64
全角float64
类对象
dtype:对象
关于如何解决此问题的任何建议,以便我可以进行乘法运算?
答案 0 :(得分:1)
您有什么理由不能这样做吗?
iris_ds['Sepal-area'] = iris_ds.Sepal-width * iris_ds.Sepal-length
我认为可能有2个问题。您可能不应该使用Sepal-length
作为列名,而应该使用Sepal_length
(并将其应用于其他变量),得出答案:
iris_ds['Sepal_area'] = iris_ds.Sepal_width * iris_ds.Sepal_length