在Python/Pandas中,是否有一种方法可以使用带有通配符的通用变量名来选择所有相似的列?

hc8w905p  于 2022-12-09  发布在  Python
关注(0)|答案(2)|浏览(132)

在Stata中,如果我输入Week_*,它会选择所有列Week_1、Week_2等。在Python/Pandas中有类似的方法吗?
代码示例,包括我想做的最后一行。

# One-hot Encode Week: Create variables Week_1, Week_2, ... etc.
dt_temp0 = dt_temp0.join(pd.get_dummies(dt_temp0['Week'],prefix='Week'))

# Features to Use
feat_cols = ['lag2_tfk_total','lag3_tfk_total','lag2_Trips_pp','lag3_Trips_pp',
             'ClinicID_fac', 'Week_*']

x_train = dt_temp1.loc[dt_temp1['train'] == 1,feat_cols]
llmtgqce

llmtgqce1#

您可以使用列表理解来选择周列:

week_cols = [col for col in df_temp1.columns if col.startswith('Week_')]
feat_cols = ['lag2_tfk_total','lag3_tfk_total','lag2_Trips_pp','lag3_Trips_pp',
             'ClinicID_fac', *week_cols]

如果需要,您可以将它们合并为一行。

axr492tv

axr492tv2#

实际上,我也找到了另一种方法来实现这一点,..使用filter()。然后,您只需将字符串数组连接在一起。感谢所有的帮助!

week_cols = dt_temp0.filter(regex = "Week_" ).columns.tolist()
feat_cols = ['ClinicID_fac','lag2_tfk_total','lag3_tfk_total','lag2_Trips_pp','lag3_Trips_pp'] + week_cols

相关问题