熊猫:不能将序列乘以'str'类型的非整数

时间:2019-04-16 21:30:24

标签: python pandas python-3.7

看到了一些关于一般性问题的答案,我使用了建议的一些解决方案,但仍然陷于困境。

我有以下代码:

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:对象

关于如何解决此问题的任何建议,以便我可以进行乘法运算?

1 个答案:

答案 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