python - / 的错误不支持的操作数类型:“str”和“int”
问题描述
我想将 X 列的平均值计算为矩阵,但收到主题错误消息,但是我试图将数据集转换为整数,Int
或者to_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)
解决方案
请查看您的输入 csv。如果有任何行不包含数字,pandas read_csv 会将每个单元格解释为一个字符串。因此,您的矩阵将不包含数字,而是包含字符串,这将导致您观察到的错误。使用
pd.read_csv('hw03_problem2.csv', skipinitialspace=True, dtype=int)
将通知熊猫,您期望整数(替换为您的 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]
推荐阅读
- android - 如何创建已弃用版本的 Android 虚拟设备
- loops - SCSS 颜色循环
- javascript - toFixed 返回错误的输出
- javascript - 使用 javascript 编辑表单时填充下拉列表
- python - 在 Pandas 中字符串比较、列平均和删除 NaN?
- java - 如何通过java代码登录我的帐户
- ios - 我可以在 Siri 快捷方式中为建议的 InvocationPhrase 提供动态字符串吗?
- c - 读取函数永远不会在 C 中返回 0
- python-3.x - 用于从rabbitmq获取消息的python多线程应用程序
- javascript - ES6 类中的继承和原型链