错误/:“str”和“int”的操作数类型不受支持

2024-09-30 20:16:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算X列作为矩阵的平均值,但收到主题错误消息,但是我试图通过Intto_numeric将数据集转换为整数,但没有成功

data = pd.read_csv('hw03_problem2.csv', skipinitialspace=True)
trainingYdf = data['mpg']
trainingXdf = data[['cylinders', 'displacement', 'horsepower', 'weight']]

Y = np.matrix(trainingYdf).T
X = np.matrix(trainingXdf)

X_columnMeans = X.mean(axis=0)

Tags: csvto数据消息主题data错误np
1条回答
网友
1楼 · 发布于 2024-09-30 20:16:44

请查看您的输入csv。如果有任何一行不包含数字,pandas read_csv将把每个单元格解释为字符串。因此,您的矩阵将不包含数字,而是字符串,这将导致您观察到的错误。使用 pd.read_csv('hw03_problem2.csv', skipinitialspace=True, dtype=int) 将通知pandas,您需要整数(替换为csv包含的任何数字格式)。但是,如果csv中有包含文本的单元格,则仍然会失败

OP编辑了他的问题后

您的trainingYdf列仍将包含字符串矩阵,因为np.matrix不会转换为数值

tmp = [["1","2","3"],["4","5","6"]]  
x = np.matrix(tmp)  
print(x)

将导致

[['1' '2' '3']
 ['4' '5' '6']]

在转换为np.matrix之前,尝试转换“trainingYdf”中的每个条目(假设其为一维)

trainingYdf = [float(x) for x in trainingYdf]

相关问题 更多 >