python - 从列表中的名称中选择数据框列

标签 python pandas

我有一个数据框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/

相关文章:

python - 在一张图中 python plotly 绘制多个 pandas 数据帧

python - 自定义事件 : TypeError: 'NoneType' object is not subscriptable

python - 将 df1 中的值替换为 df2 中的值,然后在新列中分配代码(如果值被替换)

python - Pandas drop 函数在 for 循环中不起作用?

python - 从多索引数据帧( Pandas )中删除不完整的季节

python - 如何提取图像的边界(OCT/视网膜扫描图像)

Python检查缓存键是否存在

python - Pandas DataFrame 按时间戳分组

Python Pandas - 日期和月份混淆

python - 如何找到组内值之间的最小差异