当dataframe具有行中的功能时,如何使用python选择功能

当dataframe具有行中的功能时,如何使用python选择功能,python,random-forest,Python,Random Forest,我的数据框是这样的:其中px1、px2、…px99是占位符,在数据框中显示为列。它具有5569、5282等值,这些值是要选择的真实特征。这些特征有数千种。我想过滤重要的功能。尝试使用随机林。我知道我可以从随机林中过滤Px,但如何在其中嵌入实际功能?我正在使用python px1 px2 px3 px4 px5 px6 px7 px8 px9 px10 5569 5282 93 55695280939904 55695282933893887238979904 556952805551933995

我的数据框是这样的:其中px1、px2、…px99是占位符,在数据框中显示为列。它具有5569、5282等值,这些值是要选择的真实特征。这些特征有数千种。我想过滤重要的功能。尝试使用随机林。我知道我可以从随机林中过滤Px,但如何在其中嵌入实际功能?我正在使用python

px1 px2 px3 px4 px5 px6 px7 px8 px9 px10

5569 5282 93
55695280939904
55695282933893887238979904
5569528055519339958607
5569 5280 93 8867

5282556993990493

您不需要超过两列,因为时间顺序不重要,所以

df = pds.concat([df[['px1',col]].rename(columns={col:'px2'}) for col in df.columns],\
                 axis=0,join='outer').dropna()

现在,因为你只考虑第一个变量,你必须看到:

for label,dist in df.groupby('px1')['px2']:
   dist.hist(bins=len(dist.unique()),label=label)

您不需要超过2列,因为时间顺序不重要,所以

df = pds.concat([df[['px1',col]].rename(columns={col:'px2'}) for col in df.columns],\
                 axis=0,join='outer').dropna()

现在,因为你只考虑第一个变量,你必须看到:

for label,dist in df.groupby('px1')['px2']:
   dist.hist(bins=len(dist.unique()),label=label)

更明确一点!是否要为每行或所有原始数据选择要素?列是否有条件?@G.S:我想为所有行选择特征(无特定行)。我想建立一个回归模型。为此,我想选择重要的功能。我不明白你说的是什么意思?你是说标准化还是缩放?特征代表特定的疾病,当患者访问医院时,医生会进入该疾病。每一行都是患者就诊医院的遭遇级别数据。例如:如果一个人访问附录操作,则5569(在px1第一行中)代表附录。但是,对于阑尾,患者将在第一排接受x光(5582)、止痛药(93)等检查。我理解。那么你所说的“重要”是指分销模式?你在乎时间安排吗?因为止痛药之前的x光片和x光片之前的止痛药是一样的?@G.S:时间安排并不重要。所有代码可以以任何顺序出现。选择主要(重要)功能的原因是:我想为阑尾手术等不同疾病建立模型。我想知道,当不同的患者访问不同的医院时,所有重要的程序(代码如5569、5280等)都是对他们执行的。您可以看到,第1行中只有三个程序代码,而第3行中有8个程序代码用于同一组疾病。每行最多可以有99个。因此,我想过滤执行的重要过程。更加明确!是否要为每行或所有原始数据选择要素?列是否有条件?@G.S:我想为所有行选择特征(无特定行)。我想建立一个回归模型。为此,我想选择重要的功能。我不明白你说的是什么意思?你是说标准化还是缩放?特征代表特定的疾病,当患者访问医院时,医生会进入该疾病。每一行都是患者就诊医院的遭遇级别数据。例如:如果一个人访问附录操作,则5569(在px1第一行中)代表附录。但是,对于阑尾,患者将在第一排接受x光(5582)、止痛药(93)等检查。我理解。那么你所说的“重要”是指分销模式?你在乎时间安排吗?因为止痛药之前的x光片和x光片之前的止痛药是一样的?@G.S:时间安排并不重要。所有代码可以以任何顺序出现。选择主要(重要)功能的原因是:我想为阑尾手术等不同疾病建立模型。我想知道,当不同的患者访问不同的医院时,所有重要的程序(代码如5569、5280等)都是对他们执行的。您可以看到,第1行中只有三个程序代码,而第3行中有8个程序代码用于同一组疾病。每行最多可以有99个。因此,我想过滤执行的重要程序。