为什么您当前的方法行不通 :
intersect1d不接受
N数组,仅比较2。
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)
从定义中可以看到,您将第三个数组作为
assume_unique参数传递,并且由于您将数组视为单个布尔值,因此会收到
ValueError。
您可以使用以下方法扩展功能
intersect1d以在
N阵列上工作
functools.reduce:
from functools import reducereduce(np.intersect1d, (df1.columns, df2.columns, df3.columns))array(['C', 'D'], dtype=object)
更好的方法
但是,最简单的方法是在
Index对象上使用交集:
df1.columns & df2.columns & df3.columnsIndex(['C', 'D'], dtype='object')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)