使用列表和一些字符串从 DataFrame 中选择列

use a list plus some strings to select columns from a dataframe

提问人:lara_toff 提问时间:12/13/2022 最后编辑:mozwaylara_toff 更新时间:12/13/2022 访问量:482

问:

我正在尝试制作一个动态列表,然后将其与固定字符串组合以从数据帧中选择列:

import pandas as pd

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

column_list= ['c2','c3']

df2 = df[['c1',column_list]]

但是我收到以下错误:

TypeError: unhashable type: 'list'

我也尝试了一个字典,但这是类似的错误。

Python Pandas 数据帧

评论


答:

2赞 mozway 12/13/2022 #1

在您的代码中,pandas 会尝试查找列,这是不可能的,因为只有可哈希对象才能是列名。即使这没有触发错误(例如,如果您使用元组),这也不会为您提供所需的内容。您需要一个 1D 列表。['c1','c2','c3','c4']

使用扩展:

df[['c1', *column_list]]

或补充:

df[['c1']+column_list]

输出:

Empty DataFrame
Columns: [c1, c2, c3]
Index: []