Python 比较两个数据帧并保留缺失或不相等的行
我正在比较两个数据帧,并用下面的代码报告两个数据帧中缺少或不相等的行Python 比较两个数据帧并保留缺失或不相等的行,python,pandas,Python,Pandas,我正在比较两个数据帧,并用下面的代码报告两个数据帧中缺少或不相等的行 df1['Dataframe'] = 'df1' df2['Dataframe'] = 'df2' df=pd.concat([df1, df2]) diff_df = df.drop_duplicates(subset=['Name', 'Age', 'Gender','Salary'], keep=False) 示例数据帧 Name | Age| Gender | Salary 0| Naxi | 27 | Ma
df1['Dataframe'] = 'df1'
df2['Dataframe'] = 'df2'
df=pd.concat([df1, df2])
diff_df = df.drop_duplicates(subset=['Name', 'Age', 'Gender','Salary'], keep=False)
示例数据帧
Name | Age| Gender | Salary
0| Naxi | 27 | Male | 2000.111112
1| Karan| 25 | Male | 3000.222221
2| Tanya| 27 | Female | 4000.677777
Name | Age| Gender| Salary
0| Naxi | 27 | Male | 2000.111113
1| Tanya| 27 | Female| 3000.2222214
2| Karan| 25 | Male | 4000.67775
由于“薪资”列不匹配,因此将报告为不同。如何确保在匹配该列时,它只考虑小数点后的前两个数字,并且这两个数据帧相等?只需使用round()
方法:
df['Salary']=round(df['Salary'],3)
最后:
diff_df = df.drop_duplicates(subset=['Name', 'Age', 'Gender','Salary'], keep=False)
现在,如果您打印diff_df
您将获得所需的输出只需使用round()
方法:
df['Salary']=round(df['Salary'],3)
最后:
diff_df = df.drop_duplicates(subset=['Name', 'Age', 'Gender','Salary'], keep=False)
现在,如果您打印diff_df
,您将获得所需的输出