python保存csv指定列
时间: 2023-08-08 22:08:26 浏览: 160
要保存 CSV 文件的指定列,你可以使用 Python 的 csv 模块。下面是一个简单的示例代码,展示了如何实现这一功能:
```python
import csv
def save_selected_columns(input_file, output_file, selected_columns):
with open(input_file, 'r') as file:
reader = csv.reader(file)
header = next(reader)
selected_indices = [header.index(col) for col in selected_columns]
with open(output_file, 'w', newline='') as outfile:
writer = csv.writer(outfile)
writer.writerow(selected_columns)
for row in reader:
selected_row = [row[idx] for idx in selected_indices]
writer.writerow(selected_row)
# 示例使用
input_file = 'input.csv'
output_file = 'output.csv'
selected_columns = ['Column1', 'Column3']
save_selected_columns(input_file, output_file, selected_columns)
```
上述代码中,`save_selected_columns` 函数接受三个参数:`input_file` 是输入 CSV 文件的路径,`output_file` 是保存选定列的 CSV 文件的路径,`selected_columns` 是一个包含要保留的列名的列表。
函数首先打开输入文件,并使用 `csv.reader` 对其进行迭代。通过 `next(reader)` 读取文件的首行,即表头,并使用 `header.index(col)` 获取每个选定列的索引。
接下来,函数打开输出文件,并使用 `csv.writer` 来写入选定列。首先,它使用 `writer.writerow(selected_columns)` 写入选定列的列名。然后,它迭代读取器对象,对于每一行,使用选定列的索引来提取相应的值,然后使用 `writer.writerow(selected_row)` 将这些值写入输出文件。
记得将示例中的 `input.csv` 替换为你的输入文件路径,将 `output.csv` 替换为你想要保存选定列的输出文件路径,以及将 `selected_columns` 替换为你想要保留的具体列名列表。
阅读全文