python处理两个excel中的某列,他们的列名不同,列中单元格包含有相似信息(包含数字),则保存
时间: 2024-03-08 22:48:10 浏览: 49
好的,我理解了你的问题。你需要编写一个Python程序来处理两个Excel文件中的某列数据,这两个文件的列名不同,但是这些列中的单元格包含有相似的信息(包含数字),然后将这些数据保存到一个文件中。
首先,你需要使用Python中的pandas库来读取这两个Excel文件。假设这两个文件的路径分别为`file1.xlsx`和`file2.xlsx`,并且需要读取的列名分别为`col1`和`col2`。你可以使用以下代码来读取这些数据:
```python
import pandas as pd
# 读取文件1中的数据
df1 = pd.read_excel('file1.xlsx')
col1_data = df1['col1']
# 读取文件2中的数据
df2 = pd.read_excel('file2.xlsx')
col2_data = df2['col2']
```
接下来,你需要编写一个函数来比较这两个列中的数据,找到包含有相似信息的单元格。假设你想要比较这两个列中的数据,如果它们包含有相同的数字,则认为它们包含有相似的信息。你可以使用以下代码来实现:
```python
def compare_columns(col1, col2):
result = []
for val1 in col1:
for val2 in col2:
if str(val1) in str(val2) or str(val2) in str(val1):
result.append(val1)
break
return result
similar_data = compare_columns(col1_data, col2_data)
```
最后,你需要将这些包含有相似信息的数据保存到一个文件中。你可以使用Python中的csv库来实现。假设你想要将这些数据保存到`output.csv`文件中,你可以使用以下代码来实现:
```python
import csv
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
for val in similar_data:
writer.writerow([val])
```
这样,你就完成了整个任务。完整的代码如下:
```python
import pandas as pd
import csv
def compare_columns(col1, col2):
result = []
for val1 in col1:
for val2 in col2:
if str(val1) in str(val2) or str(val2) in str(val1):
result.append(val1)
break
return result
# 读取文件1中的数据
df1 = pd.read_excel('file1.xlsx')
col1_data = df1['col1']
# 读取文件2中的数据
df2 = pd.read_excel('file2.xlsx')
col2_data = df2['col2']
# 比较这两个列中的数据
similar_data = compare_columns(col1_data, col2_data)
# 将结果保存到文件中
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
for val in similar_data:
writer.writerow([val])
```
希望这可以帮助到你!
阅读全文