根据熊猫第一栏的多重线性回归

时间:2017-04-08 03:51:14

标签: python pandas linear-regression

我有pandas.DataFrame喜欢:

    A    D    V
0  329    0  138
1  329   42  137
2  329   72  141
3  329  106  141
4  329  135  138
5  800    0  150
6  800   30  160
......

现在我想,对于'A'中的每个名字,我想使用相应的数字进行线性回归。

例如,对于'329',我想使用['0', '42', '72', '106', '135']['138', '137', '141', '141', '138']进行线性回归。

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

如果您使用pandas.DataFrame.groupby(),则可以单独处理每个名称:

<强>代码:

import numpy as np

def interp(group):
    return list(np.polyfit(group['D'].values, group['V'].values, 1))

# used as
df.groupby('A').apply(interp)

测试代码:

import pandas as pd
df = pd.read_fwf(StringIO(u"""        A    D    V
    329    0  138
    329   42  137
    329   72  141
    329  106  141
    329  135  138
    800    0  150
    800   30  160"""))

print(df.groupby('A').apply(interp))

<强>结果:

A
329    [0.0122277757944, 138.131827919]
800             [0.333333333333, 150.0]
dtype: object