Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两个数据帧中的公共列列表_Python_Python 3.x_Pandas - Fatal编程技术网

Python 两个数据帧中的公共列列表

Python 两个数据帧中的公共列列表,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在考虑对数据帧进行合并操作,每个数据帧都有大量的列。不希望结果有两个同名的列。我正在尝试查看两个框架之间共同的列名列表: 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'

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

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布尔数组,使其只返回公共列列表?

使用或:

后一个选项的替代语法:

df1.columns & df2.columns

我怎么能得到相反的结果呢?不在两个数据帧中的列?@jezrael,在本例中为A,D,FM@raffa_sa-使用
df2.columns.symmetric_difference(df1.columns)
df1.columns & df2.columns