You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态列表结合固定字符串选取DataFrame列报错:TypeError解决

解决DataFrame列选取时的TypeError问题

问题原因

你写的df[['c1', column_list]]里,column_list本身是列表,导致传入的是嵌套列表['c1', ['c2','c3']]。pandas选取列需要一维的可哈希序列(比如普通列表、元组),而列表是不可哈希类型,所以触发TypeError: unhashable type: 'list'。

解决方案

只需要把固定列和动态列表合并成一个一维列表即可,以下是几种常用方法:

方法1:列表直接拼接(最简洁)

将固定列'c1'放到列表中,再和column_list拼接:

import pandas as pd

df = pd.DataFrame([], columns=['c1','c2','c3','c4'])
column_list= ['c2','c3']

# 合并成一维列表
selected_columns = ['c1'] + column_list
df2 = df[selected_columns]

方法2:用extend构建列表

先创建包含固定列的列表,再扩展动态列表:

selected_columns = ['c1']
selected_columns.extend(column_list)
df2 = df[selected_columns]

方法3:使用元组拼接(可选)

如果习惯用元组,也可以用元组拼接后转成列表:

selected_columns = list(('c1',) + tuple(column_list))
df2 = df[selected_columns]

这些方法都能生成一维的列名序列,pandas可以正常识别并选取对应列。

内容的提问来源于stack exchange,提问作者lara_toff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:01:17