如何将多列名存入变量以在Pandas DataFrame中选取指定列?
解决Pandas DataFrame多列名变量的列选取问题
核心原因
你之前用字符串拼接得到的是单个逗号分隔的字符串(如'col_C, col_D, col_E'),但Pandas选取多列时需要的是列名组成的列表,而非单一字符串,因此直接使用会报错。
正确实现方式
- 将多列名定义为列表类型:
var = ['col_C', 'col_D', 'col_E'] - 合并目标列列表后进行选取:
由于不能直接在嵌套列表中使用变量,需要把固定列和变量列的列表合并:
或者先整合为完整列名列表再使用:table[['col_A', 'col_B'] + var]selected_columns = ['col_A', 'col_B'] + var table[selected_columns]
补充说明
当你用单个列名字符串(如var2='col_C')时,['col_A', 'col_B', var2]最终会生成一个包含三个单独列名的列表,符合Pandas的要求,因此可以正常选取;而字符串拼接得到的是单个元素,Pandas会将其当作一个列名去查找,自然匹配失败。
内容的提问来源于stack exchange,提问作者Horaci
相关产品推荐
相关产品推荐

