【问题标题】:comparing csv files values with mean squared error将 csv 文件值与均方误差进行比较
【发布时间】:2020-07-01 22:57:20
【问题描述】:

我有 2 个 csv 文件,其中一个包含 1 列和 27 行(仅包含数字),我想逐行比较这 2 个 csv 文件,取均方误差并打印每次比较的结果,这样我就可以最后计算平均均方误差。我正在使用 pandas 和 sklearn 任何帮助都非常感谢。提前谢谢你。

import pandas as pd
from sklearn.metrics import mean_squared_error
cars = pd.read_csv('koula.csv')
moto = pd.read_csv('katerina.csv')
print(cars)
print(moto)
for i in range(cars):
    for j in range(moto):
       print(mean_squared_error(cars,moto))

【问题讨论】:

  • 你能发布你的数据框的一般结构吗?

标签: python mean-square-error


【解决方案1】:

如果您只想计算每一行中的一个值,您应该这样做:

for i in range(len(cars)):
   print(mean_squared_error(cars[i],moto[i]))

如果您的数据集具有相同的长度,则此方法有效。

如果您尝试计算数据集中所有行的误差,请使用:

print(mean_squared_error(cars.values, moto.values))

这将做与上面相同的事情,但它取所有值的平均值,这将更有用。

最后,如果它们是 pd.Series 类的实例,则不必使用 .values

【讨论】:

  • cars 是一个熊猫数据框。遍历行的一种方法是range(cars.shape[0]) 而不是range(cars),这会引发异常。
  • 先生,非常感谢您,这正是我想要的!但是当我使用您的第一个建议时,我还有最后一个问题,为什么它会返回这样的错误:for i in range(cars): TypeError: 'DataFrame' object cannot be mapped as an integer.?
  • 对不起,我现在编辑了。为此,您可以使用上述注释或将len(cars) 添加到您的代码中
猜你喜欢
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多