在回归中使用分组依据定义python

时间:2019-02-26 10:51:53

标签: python python-3.x seaborn

是否可以将数据(用于定义x和y变量)分组以便直接在regPlot(或任何其他seaborn功能)中运行回归?我找不到这种内置功能。<​​/ p>

例如,在一个列中,我有一个类别变量“ C”,然后我尝试使用C的每个类别的中位数拟合回归线(带有x和y)。是否有任何功能可以做到这一点?

1 个答案:

答案 0 :(得分:1)

您需要先用pandas对数据进行分组,然后再用seaborn对其进行绘制。由于您没有提供数据框,因此我将使用一个简单的示例数据集进行演示。

import pandas as pd
import seaborn as sns
# load dataframe
df = sns.load_dataset('car_crashes')

数据框如下所示。 abbrev列是类别列。我将totalspeeding变量用作y和x。

enter image description here

首先,使用pandas .groupby()方法并传递您的分类变量,同时使用另一种方法.median(),以便pandas将汇总您的数据并返回数据的中位数。熊猫将返回如下数据框 enter image description here

然后仅调用要绘制的列。在我们的情况下,它们是totalspeeding。之后,将x和y传递给seaborn .regplot()

# group by
x = df.groupby(['abbrev']).median().speeding
y = df.groupby(['abbrev']).median().total
# plot
sns.regplot(x, y)

enter image description here