Для соответствия регрессии вы можете использовать scikitlearn или statmodels. Scikitlearn более удобен, если вы знаете ООП.
import numpy as np
from sklearn.linear_model import LinearRegression
# create a random sample
X_sample = np.random.normal(10, 5, 10)
# create a model simulation
y_sample = 3 + 4*X_sample + np.random.normal(0, 1, 10)
# Scikitlearn expect X values as array of array
X = np.expand_dims(X_sample, axis=1)
# fit a model
reg = LinearRegression().fit(X, y_sample)
# Alternative fit
# lrm = LinearRegression()
# reg = lrm.fit(X, y_sample)
# print r-square, intercept value and coefficients
print(reg.score(X, y_sample))
print(reg.intercept_)
print(reg.coef_)
Кстати, это не проблема панд. Вы можете взглянуть на API Scikit-Learn, как использовать pandas-фрейм данных для шинирования, и обучающую модель.