从多个数据框中查找不同的列名

时间:2019-01-09 19:14:14

标签: python python-3.x pandas set

我试图仅从三个不同的数据框中找到唯一的列名。结果应为“ A”和“ F”列。任何帮助,将不胜感激。

ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

错误:

<add name="MyConn" connectionString="metadata=res://*/Products.csdl|res://*/Products.ssdl|res://*/Products.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=100.6.8.111;initial catalog=myDB;user id=sa;password=XYZ;multipleactiveresultsets=True&quot;" providerName="System.Data.EntityClient"/>  

2 个答案:

答案 0 :(得分:2)

您需要的对称差不过是联合-相交

a, b, c = df1.columns, df2.columns, df3.columns
(a | b | c).difference(a & b & c)
# Index(['A', 'B', 'E', 'F'], dtype='object')

答案 1 :(得分:-1)

如果要使用numpy,请使用intersect1d

np.intersect1d(np.intersect1d(df1.columns, df2.columns), df3.columns)
array(['C', 'D'], dtype=object)

或者在纯python中:

set(df1.columns).intersection(df2.columns).intersection(df3.columns)
{'C', 'D'}
相关问题