【发布时间】:2019-09-02 03:52:13
【问题描述】:
使用 Pandas,我从 CSV 文件中读取数据,然后尝试使用 linregress 对其执行线性回归。我能够从文件中提取和操作数据,但是,当我使用 linregress 时,虽然它似乎在运行回归,但它返回一个元组,并且似乎没有斜率、截距和其他属性。
我得到的错误如下:
Traceback (most recent call last):
File "Plot test.py", line 24, in <module>
UP_S_m = UP_S_stats.slope
AttributeError: 'tuple' object has no attribute 'slope'
使用以下代码:
import csv
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import linregress
headers = ['UnitPrice', 'FinalPrice', 'ProductName', 'gSugar', 'gProtein', 'gFat', 'Calories', 'ContainerNum', 'Ounces']
data = pd.read_csv("Yogurt Sugar - All Data CSV.csv", names = headers, skiprows = 1)
UnitPrice = data.UnitPrice
FinalPrice = data.FinalPrice
Sugar = data.gSugar
Protein = data.gProtein
Fat = data.gFat
Calories = data.Calories
Ounces = data.Ounces
#
# Run regressions.
#
UP_S_stats = linregress(UnitPrice, Sugar)
UP_S_m = UP_S_stats.slope
我查看了几个示例,包括 this very similar one,但无法确定我哪里出错了。
【问题讨论】:
-
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)参考:docs.scipy.org/doc/scipy/reference/generated/… -
您使用的是哪个版本的
scipy?您可以通过import scipy; print(scipy.__version__)了解