如何用python把一个csv1文件和另一个csv2中特定列比较,相同的话在这一行增加一列csv其他列的内容
时间: 2024-04-21 11:22:31 浏览: 113
要使用 Python 将一个 CSV 文件中的特定列与另一个 CSV 文件中相同的内容进行比较,并在相同行中添加一个新的列,其中包含另一个 CSV 文件中相应行的其他列内容,可以按照以下步骤进行操作:
1. 读取两个 CSV 文件:使用 Python 的 CSV 模块(csv)来读取两个 CSV 文件的内容,并将它们存储在列表或字典中。
```python
import csv
# 读取第一个 CSV 文件
data1 = []
with open('csv1.csv', 'r') as file1:
reader = csv.DictReader(file1)
for row in reader:
data1.append(row)
# 读取第二个 CSV 文件
data2 = []
with open('csv2.csv', 'r') as file2:
reader = csv.DictReader(file2)
for row in reader:
data2.append(row)
```
确保将 `'csv1.csv'` 和 `'csv2.csv'` 替换为实际的文件路径。
2. 比较两个数据集并添加新列:使用循环遍历第一个数据集,并检查特定列的值是否存在于第二个数据集中。如果存在,则将第一个数据集中相应行的新列设置为第二个数据集中相应行的其他列内容。
```python
# 比较两个数据集并添加新列
for row1 in data1:
for row2 in data2:
if row1['特定列名'] == row2['特定列名']:
row1['新列名'] = row2['其他列名']
break
```
确保将 `'特定列名'` 替换为你要比较的实际列名,将 `'新列名'` 替换为你要添加到第一个数据集中的新列名,将 `'其他列名'` 替换为第二个数据集中你想要获取值的实际列名。
3. 将更新后的结果写入新的 CSV 文件:使用 csv.DictWriter 将更新后的结果列表写入一个新的 CSV 文件。
```python
# 将更新后的结果写入新的 CSV 文件
fieldnames = data1[0].keys() + ['新列名'] # 获取字段名并添加新列名
with open('result.csv', 'w', newline='') as result_file:
writer = csv.DictWriter(result_file, fieldnames=fieldnames)
writer.writeheader() # 写入字段名
writer.writerows(data1)
```
确保将 `'result.csv'` 替换为你希望保存结果的文件路径。
这样,你将得到一个包含第一个 CSV 文件中特定列与第二个 CSV 文件中相同内容,并在相同行中添加了一个新列的新文件。请注意,这种方法假设你要比较的是特定列的值而不是整个行。如果你还想比较其他列,请相应地修改代码。
阅读全文