使用Pandas,我从CSV文件中读取数据,然后尝试使用linregresse对其执行线性回归。我能够从文件中提取和操作数据,但是,当我使用linregresse时,虽然它似乎运行回归,但它返回一个元组,并且似乎没有slope、intercept和其他属性。你知道吗
我得到的错误如下:
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,但不能确定哪里出了问题。你知道吗
从scipyversion0.16.0开始,^{} 返回一个^{} ,允许您使用属性名访问元组的元素。如果您使用的是早于0.16的SciPy版本,则返回值是一个普通元组,因此必须使用常规索引获取斜率,例如
或者直接从函数调用中解包名称,例如
相关问题 更多 >
编程相关推荐