我有一个数据框df1
,列名称为A .. Z。我有另一个列表,L1 = [A, D, G, Y]
。如何创建一个新的 pandas 数据框 df2
,其中仅从原始 df1
中选择列 A、D、G、Y?
我尝试了以下方法:
df2 = df1[L1]
但出现错误
"KeyError: None of [Index ([(''A'',),(''D'',) ...<snip>... are in the [columns]"
如果我尝试类似的事情
df2 = df1[L1[0]]
然后它就可以正常工作,即它给我 df2
,它仅包含 A 列。
知道第一种方法缺少什么吗?第二种手动枚举的方法比较繁琐。 谢谢。
最佳答案
我认为你在 L1 中有一个元组列表。
让我们将该列表元组解压到列列表中,c:
c, _ = zip(*L1)
df2 = df1[c]
关于python - 从列表中的名称中选择数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59416980/