我想比较两个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
答案 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