python处理两个excel中,列名不同,列中单元格包含有相同数字,其他信息不必完全相同,则保存
时间: 2024-01-12 19:05:31 浏览: 74
好的,您的问题是如何用 Python 处理两个 Excel 文件,找到其中列中单元格包含有相同数字,其他信息不必完全相同的行,即使列名不同,也能进行比较,然后将这些行保存下来。
下面是一个可以实现这个功能的 Python 代码示例,需要使用 pandas 和 openpyxl 库:
```python
import pandas as pd
import numpy as np
# 读取两个 Excel 文件
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
# 查找共同的列
common_cols = list(set(df1.columns) & set(df2.columns))
# 按照共同的列进行内连接
df_merge = pd.merge(df1, df2, on=common_cols, how='inner')
# 循环遍历需要比较的列
compare_cols = ['需要比较的列名1', '需要比较的列名2']
for col in compare_cols:
# 在每个单元格中查找是否包含相同数字,并创建一个布尔型的 DataFrame
contains_nums = df_merge.filter(regex=col).astype(str).apply(lambda x: any(i.isdigit() for i in x))
# 将布尔型的 DataFrame 转换成 NumPy 数组
np_contains_nums = contains_nums.to_numpy()
# 用 NumPy 数组筛选出包含相同数字的行
df_result = df_merge[np_contains_nums]
# 将结果保存为新的 Excel 文件
df_result.to_excel(f'result_{col}.xlsx', index=False)
```
需要注意的是,上述代码中的“需要比较的列名1”和“需要比较的列名2”需要根据实际情况进行修改,以对应实际的 Excel 文件中的列名。另外,代码中使用了循环遍历的方法,可以通过修改 `compare_cols` 列表中的元素,来比较多个列中是否包含相同数字。
阅读全文