我有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
关于python - 根据 Pandas 第一栏的多元线性回归,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43289985/