要比较多个 pandas 数据帧的列名,可以使用以下代码示例中的方法:
import pandas as pd
# 创建示例数据帧
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'C': [10, 11, 12]})
df3 = pd.DataFrame({'A': [13, 14, 15], 'B': [16, 17, 18], 'C': [19, 20, 21]})
# 获取所有数据帧的列名集合
column_names_set = set(df1.columns).union(df2.columns).union(df3.columns)
# 打印所有数据帧的列名
for df in [df1, df2, df3]:
missing_columns = column_names_set.difference(df.columns)
print(f"缺失的列名:{missing_columns},在数据帧 {df} 中不存在。")
输出结果如下:
缺失的列名:{'C'},在数据帧 A B
0 1 4
1 2 5
2 3 6 中不存在。
缺失的列名:{'B'},在数据帧 A C
0 7 10
1 8 11
2 9 12 中不存在。
缺失的列名:set(),在数据帧 A B C
0 13 16 19
1 14 17 20
2 15 18 21 中不存在。
这段代码首先创建了三个示例数据帧 df1、df2 和 df3。然后使用 set(df1.columns).union(df2.columns).union(df3.columns)
获取了所有数据帧的列名集合 column_names_set。
接下来,使用一个循环遍历每个数据帧,并使用 column_names_set.difference(df.columns)
找出缺失的列名,即在 column_names_set 中存在但在当前数据帧 df 中不存在的列名。
最后,打印出缺失的列名和数据帧的信息。
请根据实际需求修改代码中的数据帧和列名集合的名称。
下一篇:比较多个变量并执行包含函数