如何动态访问DataFrame中以Type_为前缀的动态命名列?
动态访问DataFrame中Type前缀列的方法
DataFrame的点号访问(df.column)不支持动态变量拼接,所以可以用以下两种实用方式实现你的需求:
方法1:字符串拼接+方括号索引
这是最直接的实现方式,先构造完整的目标列名,再通过方括号索引访问:
colName = "House" # 用f-string拼接列名 target_column = df[f"Type_{colName}"] # 也可以用传统字符串拼接:"Type_" + colName
方法2:使用getattr()函数
如果偏好类似点号访问的语法风格,可以用getattr()函数动态获取列对象,效果和直接用点号访问一致:
colName = "House" target_column = getattr(df, f"Type_{colName}")
拓展:匹配不确定的Type相关列
如果不确定列名是否严格以Type_开头,只是需要匹配包含Type关键词的列,可以用列表推导式筛选:
# 筛选所有以"Type_"开头的列 type_related_cols = [col for col in df.columns if col.startswith("Type_")] # 若要匹配所有包含"Type"的列,改为:if "Type" in col
内容的提问来源于stack exchange,提问作者andrdpedro
相关产品推荐
相关产品推荐

