gpt4 book ai didi

python - 应用 Plyfit 函数查找每个数据框列的斜率

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:44 25 4
gpt4 key购买 nike

我正在尝试应用以下函数来计算每个数据框列的斜率和截距:

from scipy.stats import linregress
def fit_line(x, y):
"""Return slope, intercept of best fit line."""
# Remove entries where either x or y is NaN.
clean_data = pd.concat([x, y], 1).dropna(0) # row-wise
(_, x), (_, y) = clean_data.iteritems()
slope, intercept, r, p, stderr = linregress(x, y)
return slope, intercept

我创建了一个包含两列的新数据框,但是,我真的不知道如何将第一列作为 (x) 传递,将其他列作为 y 传递?

df['m'], df['b']  = df_freq.apply(fit_line(x?, y?), axis=1)

这里是数据框的列,所有数据都是 float 。

Index(['时间', '5', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55', '60', '65', '70', '75', '80', '85', '90', '95', '100', '105', '110', '115', '120', '125', '130', '135', '140', '145', '150', '155', '160', '165', '170', '175', '180', '185', '190', '195', '200', '205', '210', '215', '220', '225', '230', '235', '240', '245'], dtype='对象')

最佳答案

已编辑:抱歉,我没看清楚你的问题。

编辑 2:考虑到默认情况下附加不是原位

我认为使用 for 循环来实现您想要实现的目标是最简单的。假设您有不同的列,其中的 y 值和索引作为 x 值:

df_fit_parameter = pd.DataFrame()
for column in df_freq.columns:
df_lin_fit = df_freq[column].dropna()
slope, intercept, r, p, stderr = linregress(df_lin_fit.index, df_lin_fit)
df_fit_parameter = df_fit_parameter.append(pd.DataFrame({'m':slope,'b':intercept}, index=[column]))

关于python - 应用 Plyfit 函数查找每个数据框列的斜率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46053118/

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