Skip to main content
 首页 » 编程设计

python之如何使用Python根据列名找出两个数据框的差异

2025年05月04日22birdshome

我想找出两个数据框在列名方面的区别。

这是示例表 1

d1 = {'row_num': [1, 2, 3, 4, 5], 'name': ['john', 'tom', 'bob', 'rock', 'jimy'], 'DoB': ['01/02/2010', '01/02/2012', '11/22/2014', '11/22/2014', '09/25/2016'], 'Address': ['NY', 'NJ', 'PA', 'NY', 'CA']} 
df1 = pd.DataFrame(data = d) 
df1['month'] = pd.DatetimeIndex(df['DoB']).month 
df1['year'] = pd.DatetimeIndex(df['DoB']).year 

这是示例表 2

d2 = {'row_num': [1, 2, 3, 4, 5], 'name': ['john', 'tom', 'bob', 'rock', 'jimy'], 'DoB': ['01/02/2010', '01/02/2012', '11/22/2014', '11/22/2014', '09/25/2016'], 'Address': ['NY', 'NJ', 'PA', 'NY', 'CA']} 
df2 = pd.DataFrame(data = d) 

表 2 或 df2 没有像 df1 那样的月份和年份列。我想找出 df2 中缺少 df1 的哪些列。

我知道 sql 中有“EXCEPT”,但是如何使用 pandas/python 来实现,有什么建议吗?

请您参考如下方法:

有一个函数就是为了这个目的:pd.Index.difference

df1.columns.difference(df2.columns) 
Index(['month', 'year'], dtype='object') 

以及,相应的列;

df1[df1.columns.difference(df2.columns)] 
 
   month  year 
0      1  2010 
1      1  2012 
2     11  2014 
3     11  2014 
4      9  2016