如何比较两个数据框列(不需要相同数据)?

时间:2019-08-26 07:07:23

标签: python pandas

我想比较两个df的列是否相同,而不是数据/值

df1

         A       B       

    0   45      25

    1   46      26

    2   47      27

df 2

        B       A       

    0   45      25

    1   46      26

    2   47      27

我只想检查两个df是否具有相同的列而不是数据

我试图转换为列表和系列对象,然后进行比较 它给了我

    ValueError: Can only compare identically-labeled dataframe objects 

2 个答案:

答案 0 :(得分:1)

您可以将列名放入set中并比较集合:

print(set(df1.columns) == set(df2.columns))

完整示例:

import pandas as pd
from io import StringIO


df1 = pd.read_csv(StringIO("""
         A       B       

    0   45      25

    1   46      26

    2   47      27"""), sep="\s+")

df2 = pd.read_csv(StringIO("""
        B       A       

    0   45      25

    1   46      26

    2   47      27"""), sep="\s+")

print(set(df1.columns) == set(df2.columns))

输出:

True

答案 1 :(得分:0)

尝试一下:

df1.columns.difference(df2.columns).size == 0