📅  最后修改于: 2023-12-03 15:07:14.387000             🧑  作者: Mango
在数据分析和处理中,经常需要删除一个表中存在于另一个表中的行。使用Pandas能够轻松实现这个操作,以下是实现该功能的步骤和代码。
首先,我们需要导入Pandas和numpy库。
import pandas as pd
import numpy as np
然后我们创建两个DataFrame用于演示删除操作,一个是员工信息表,另一个是需要删除的员工信息表。
df_employee = pd.DataFrame({'ID': [101, 102, 103, 104, 105],
'Name': ['John', 'Cathy', 'Lisa', 'Mike', 'Mary'],
'Department': ['IT', 'HR', 'Marketing', 'Sales', 'IT']})
df_delete = pd.DataFrame({'ID': [102, 104, 106],
'Name': ['Cathy', 'Mike', 'Tom'],
'Department': ['HR', 'Sales', 'IT']})
现在我们需要将两张表连接起来,这里使用merge函数。具体使用方法参见Pandas merge。
df_merged = pd.merge(df_employee, df_delete, how='outer', indicator=True)
这里使用参数how='outer',将两个DataFrame按照外连接合并。indicator参数用于判断每行数据在哪个DataFrame中,属于left_only就是员工信息表中的数据,需要保留。反之就是要删除的员工信息表中的数据。
接下来,我们根据indicator列的值,对需要删除的行进行过滤。然后使用drop函数删除这些行。具体代码如下:
df_filtered = df_merged[df_merged['_merge']=='left_only']
df_result = df_filtered.drop('_merge', axis=1)
最后我们输出结果即可。这里将结果保存在df_result中,可以使用to_csv函数将结果保存为CSV文件。
print(df_result)
输出结果:
ID Name Department
0 101 John IT
2 103 Lisa Marketing
4 105 Mary IT
模块的使用可以通过官方文档或者所学习的教材获得。这篇文章仅提供一种操作的思路。