python实现遍历其中一个csv文件指定列的数据作为条件,以这些条件分别筛选出另一个csv文件中指定列中满足这些条件的数据所在的行数据,将这些数据存入新的csv文件中
时间: 2023-05-28 16:01:24 浏览: 114
以下是python代码:
```python
import csv
# 读取条件csv文件中指定列的数据
condition_col = "name"
condition_values = []
with open("condition.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
condition_values.append(row[condition_col])
# 筛选符合条件的数据并存入新csv文件
target_col = "name, age, gender"
with open("target.csv", "r") as f1, open("result.csv", "w", newline="") as f2:
reader = csv.DictReader(f1)
writer = csv.writer(f2)
writer.writerow(target_col.split(", "))
for row in reader:
if row["name"] in condition_values:
writer.writerow([row["name"], row["age"], row["gender"]])
```
代码解释:
- `condition_col` 指定了条件csv文件中需要作为筛选条件的列名,此处为"name"。
- `condition_values` 用于存储条件csv文件中指定列的数据,初始为空列表。
- `target_col` 指定了目标csv文件中需要筛选的列,多个列名用","隔开,此处为"name, age, gender"。
- 在第一个with块中打开条件csv文件,读取其中指定列的数据并将其存入`condition_values`列表中。
- 在第二个with块中打开目标csv文件,读取其中的每一行数据,如果该行数据的"name"列值在`condition_values`列表中出现,则将该行数据的"name"、"age"、"gender"三个列的值写入新csv文件中。
- `newline=""` 参数确保在文件中写入一行结束标识后不再自动插入新行。