python根据一个excel内容删除另一个表中相同
时间: 2023-12-07 18:03:25 浏览: 33
可以使用 pandas 库来实现这个功能。假设你要删除的表格为 `table1.xlsx`,其中包含一个名为 `Sheet1` 的工作表,另一个表格为 `table2.xlsx`,其中也包含一个名为 `Sheet1` 的工作表。要删除 `table2.xlsx` 中与 `table1.xlsx` 中相同的行,可以按照以下步骤进行操作:
1. 导入 pandas 库:
```python
import pandas as pd
```
2. 读取 `table1.xlsx` 和 `table2.xlsx` 中的数据:
```python
df1 = pd.read_excel('table1.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('table2.xlsx', sheet_name='Sheet1')
```
3. 将 `table1.xlsx` 中的数据转换为集合类型(set):
```python
set1 = set(df1['列名']) # 列名为需要比对的列的名称
```
4. 使用 `isin()` 方法筛选出 `table2.xlsx` 中需要删除的行:
```python
df2 = df2[~df2['列名'].isin(set1)] # 列名为需要比对的列的名称
```
5. 将结果保存到新的表格中:
```python
df2.to_excel('new_table2.xlsx', index=False)
```
完整代码如下:
```python
import pandas as pd
df1 = pd.read_excel('table1.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('table2.xlsx', sheet_name='Sheet1')
set1 = set(df1['列名']) # 列名为需要比对的列的名称
df2 = df2[~df2['列名'].isin(set1)] # 列名为需要比对的列的名称
df2.to_excel('new_table2.xlsx', index=False)
```
其中,需要将代码中的 `列名` 替换为需要比对的列的名称。