我正在考虑对数据帧进行合并操作,每个数据帧都有大量的列.不希望结果包含两个同名列.我试图查看两个框架之间共同的列名列表:

import pandas as pd

a = [{'A': 3, 'B': 5, 'C': 3, 'D': 2},{'A': 2,  'B': 4, 'C': 3, 'D': 9}]
df1 = pd.DataFrame(a)
b = [{'F': 0,  'M': 4,  'B': 2,  'C': 8 },{'F': 2,  'M': 4, 'B': 3, 'C': 9}]
df2 = pd.DataFrame(b)

df1.columns
>> Index(['A', 'B', 'C', 'D'], dtype='object')
df2.columns
>> Index(['B', 'C', 'F', 'M'], dtype='object')

(df2.columns).isin(df1.columns)
>> array([ True,  True, False, False])

我如何操作索引对象上的NumPy布尔数组,使其只返回一个公共列列表?

推荐答案

使用numpy.intersect1dintersection:

a = np.intersect1d(df2.columns, df1.columns)
print (a)
['B' 'C']

a = df2.columns.intersection(df1.columns)
print (a)
Index(['B', 'C'], dtype='object')

后一个选项的替代语法:

df1.columns & df2.columns

Python-3.x相关问答推荐

使用魔方无法从图像中识别单个字符

可以在 Python 的上下文管理器中调用 sys.exit() 吗?

selenium 无法执行网站上最简单的功能

Python 舍入数字不准确

计算文档中所有关键字(单词和多词)出现的频率

过滤并获取数据框中条件之间的行

如何准确测定cv2的结果.在BW/黑白图像中查找对象?

pip install mysqlclient 失败为 mysqlclient 运行 setup.py bdist_wheel ... 错误

python tkInter 浏览文件夹按钮

为什么 setattr 在绑定方法上失败

命名元组内命名元组的 Python 语法

TimescaleDB:是否可以从 Python 调用create_hypertable?

django.core.exceptions.ImproperlyConfigured

'~'(波浪号)运算符在 Python 中的应用

sys.stdin.readline() 读取时没有提示,返回 'nothing in between'

Python3 的超级和理解-> TypeError?

使用完整路径激活 conda 环境

在 PyCharm 中配置解释器:请使用不同的 SDK 名称

如何从 Base64 转换为字符串 Python 3.2

TypeError:无法将系列转换为