对pandas数据框中的每一列或每一行应用回归,而无需使用for循环。
对此有类似的帖子; Apply formula across pandas rows/ regression line,对每个“行”都进行回归,但是绘制给出的答案是错误的。我无法对此发表评论,因为我没有足够的声誉,主要的问题是,它接受列的值,然后在每一行上使用apply函数。
目前,我只知道如何做每一列。
qstat -f -Q
我希望在不创建函数或for循环的情况下找到答案,类似于;熊猫df.sum(),但是我想做一个回归,而不是求和,从而导致斜率,截距,r值,p值和标准误差。
答案 0 :(得分:2)
看下面的例子:
import numpy as np
import pandas as pd
from scipy.stats import linregress
np.random.seed(1997)
df = pd.DataFrame(pd.np.random.rand(100, 10))
df.apply(lambda x: linregress(df.index, x), result_type='expand').rename(index={0: 'slope', 1:
'intercept', 2: 'rvalue', 3:
'p-value', 4:'stderr'})
它应该返回您想要的。