如何在Python中获取pandas数据帧中的数据斜率?

问题描述 投票:2回答:1

我想在数据框中获得数据集的斜率(使用线性回归模型或sk-learn模型)。

df1:
   A     B     C     D  
0  15    25    55    100
1  15.5  25.5  56    101
2  14.8  24.5  54.2  99.8
3  15.5  25.5  55.5  102
4  16    26    57    108

我想以pd.Series的形式获得每个柱子('A','B','C','D')的斜率。你能帮帮我吗?谢谢。

我想要的输出类似于下面(我只使用虚拟数字,而不是真正的斜率!):

slopes:
A  2.5
B  2.8
C  3.1
D  3.3
python pandas
1个回答
9
投票

我相信这样做,这是一个简单的线性回归与numpy

import numpy as np

slopes = df.apply(lambda x: np.polyfit(df.index, x, 1)[0])

>>> slopes
A    0.20
B    0.20
C    0.35
D    1.70

如果您想要显示数据和拟合的斜坡:

for i in df.columns:
    plt.scatter(df.index, df[i], label=i)
    plt.plot(np.polyval(np.polyfit(df.index, df[i], 1), df.index))

plt.legend()
plt.show()
© www.soinside.com 2019 - 2024. All rights reserved.