df1表的姓名分别和df2表的姓名df3表的姓名进行比对,电话和联系方式同理
时间: 2024-04-25 12:26:05 浏览: 18
可以使用pandas的merge函数将三个DataFrame按照姓名、电话、联系方式进行合并,然后再检查是否有重复行。具体步骤如下:
1. 将df1、df2、df3按照姓名、电话、联系方式进行合并,可以使用pandas的merge函数。注意,需要使用how='outer'参数来保留所有行,因为三个DataFrame中可能存在不同的姓名、电话、联系方式。
```python
# 将df1、df2、df3按照姓名、电话、联系方式进行合并
merged_df = pd.merge(df1, df2, on=['姓名', '电话', '联系方式'], how='outer')
merged_df = pd.merge(merged_df, df3, on=['姓名', '电话', '联系方式'], how='outer')
```
2. 检查是否有重复行,可以使用pandas.DataFrame.duplicated()函数。需要注意的是,如果要检查重复行,需要指定subset参数为['姓名', '电话', '联系方式']。
```python
# 检查是否有重复行
duplicate = merged_df[merged_df.duplicated(subset=['姓名', '电话', '联系方式'])]
```
3. 汇总重复行,可以使用pandas.DataFrame.groupby()函数。
```python
# 汇总重复行
if not duplicate.empty:
grouped = duplicate.groupby(['姓名', '电话', '联系方式']).size()
print(grouped)
```
完整代码如下:
```python
import pandas as pd
# 读取表格并转换为DataFrame格式
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
df3 = pd.read_excel('file3.xlsx')
# 将df1、df2、df3按照姓名、电话、联系方式进行合并
merged_df = pd.merge(df1, df2, on=['姓名', '电话', '联系方式'], how='outer')
merged_df = pd.merge(merged_df, df3, on=['姓名', '电话', '联系方式'], how='outer')
# 检查是否有重复行
duplicate = merged_df[merged_df.duplicated(subset=['姓名', '电话', '联系方式'])]
# 汇总重复行
if not duplicate.empty:
grouped = duplicate.groupby(['姓名', '电话', '联系方式']).size()
print(grouped)
```
需要注意的是,以上代码中的文件路径需要根据实际情况进行修改。