我通过列名列表 Select 了一个数据帧的几列.如果列表中的所有元素都在数据框中,那么这种方法可以很好地工作.

有没有办法 Select 该列表中包含的所有列,即使该列表的所有元素都不包含在数据框中?以下是产生上述错误的一些示例数据:

df   = pd.DataFrame( [[0,1,2]], columns=list('ABC') )

lst  = list('ARB')

data = df[lst]       # error: not in index

推荐答案

我想你需要Index.intersection:

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

lst = ['A','R','B']

print (df.columns.intersection(lst))
Index(['A', 'B'], dtype='object')

data = df[df.columns.intersection(lst)]
print (data)
   A  B
0  1  4
1  2  5
2  3  6

另一个numpy.intersect1d的解决方案:

data = df[np.intersect1d(df.columns, lst)]
print (data)
   A  B
0  1  4
1  2  5
2  3  6

Python-3.x相关问答推荐

如何在输入正确的用户名和密码时添加按钮?

数据类对象列表的字典获取方法-在数据类列表中查找具有特定变量值的数据类

无法导入名称';核心';来自部分初始化的模块';tensorflow_datasets';(很可能是由于循环导入)

CDKTF ec2 具有特定私有 IP 地址的娱乐

Python中提取每个组/ID所属特定列中的自然数

根据按不同列中的值分组的平均值划分 DataFrame

我应该如何调整我的变量,以便如果有任何单词符合其中的条件,程序会将其附加到新列表中?

提高时间复杂度的一些建议

多个返回函数的列表理解?

将字符串表示与使用整数值的枚举相关联?

如何从字典中打印特定键值?

为什么包含类的名称不被识别为返回值函数注释?

Python中的依赖倒置

Anaconda 中的依赖项和包冲突?

为什么`multiprocessing.Queue.get`这么慢?

在python中,如果一个函数没有return语句,它会返回什么?

如何判断列表中的所有项目是否都是字符串

为什么某些代码在 Python2 中是确定性的,而在 Python 3 中是非确定性的?

使用 Python 3 读取 CSV 文件

如何在 Python 3.4 中使用 pip 3?