Python 根据表中第一列的多元线性回归

Python 根据表中第一列的多元线性回归,python,pandas,linear-regression,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','13

我有
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']
进行线性回归


我该怎么做呢?

如果使用
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
测试代码:

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
结果:

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

谢谢但我的结果一直在说:TypeError:必须是str,而不是float。我不明白这里为什么有浮动?是我的数据还是你的?尝试打印(df.dtypes)