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)