gpt4 book ai didi

python - 由于 CSV 文件中缺少值,无法拟合线性多元回归模型

转载 作者:行者123 更新时间:2023-12-01 00:33:27 27 4
gpt4 key购买 nike

我正在尝试使用多个变量执行线性回归模型。我有一个 CSV 文件,其属性为:'area'、'bedrooms'、'age'、'price',但卧室有一个缺失值(即 NaN )。我想拟合模型并通过提供其他三个属性来预测价格,但由于缺少一个值,我收到错误 input contains nan infinity or a value too big for dtype('float64')。我找到了中位数并填写了缺失值,但在 CSV 文件中,它没有被替换,并且在拟合模型时给出了错误。CSV 文件如下:

CSV file

我使用了以下代码:

df=pd.read_csv(r"C:\Users\rohit\Desktop\homeprices4.csv")

df

m=math.floor(df.bedrooms.median()) // m is median which I have calculated

m

df.bedrooms.fillna(m)

reg=linear_model.LinearRegression()

reg.fit(df[['area','bedrooms','age']],df.price)

在这一行之后,我收到错误,因为卧室有一个缺失值。如果我从这一行删除bedrooms并仅使用areaage进行预测,那么NO错误,我是得到正确的结果。

所以我的问题是:如何用 CSV 文件中的中位数替换缺失值?代码是什么?为什么我收到错误?

查看错误的屏幕截图:

enter image description here

最佳答案

您帖子中的两个问题:

  1. 您的更改不会保存到数据帧中,因为除非在参数中传递 inplace=True,否则 fillna 将返回副本。这就是为什么您仍然收到错误的原因。
  2. 要将更改保存到 CSV,您需要使用 DataFrame.to_csv(...),但考虑到我之前的观点,您可能不需要这个。

我将通过数据清理步骤丰富您的管道并保存清理后的数据。我会做两个单独的脚本。

数据清理:

path_raw_data= r"C:\Users\rohit\Desktop\homeprices4.csv"
path_clean_data= r"C:\Users\rohit\Desktop\homeprices4_clean.csv"
df=pd.read_csv(path_raw_data)
m=math.floor(df.bedrooms.median()) // m is median which I have calculated
df.bedrooms.fillna(m, inplace=True)
df.to_csv(path_clean_data)

线性回归:

path_clean_data= r"C:\Users\rohit\Desktop\homeprices4_clean.csv"
df=pd.read_csv(path_clean_data)
reg=linear_model.LinearRegression()
reg.fit(df[['area','bedrooms','age']],df.price)

关于python - 由于 CSV 文件中缺少值,无法拟合线性多元回归模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58001197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com