写一段python代码,提取csv表格的部分行和部分列,并生成新的csv文件
时间: 2023-09-25 21:06:53 浏览: 169
python实现对csv文件的列的内容读取
5星 · 资源好评率100%
### 回答1:
import csv# Open the original CSV file and read the lines
with open("original.csv", 'r') as csv_file:
# Use the csv library to read lines from the file
reader = csv.reader(csv_file)
# Create a list of all lines in the file
lines = list(reader)
# Get the number of rows and columns in the file
num_rows = len(lines)
num_cols = len(lines[0])# Create an empty list for the output
output_lines = []# Iterate over the rows and columns, extracting the desired rows and columns
for i in range(num_rows):
row = []
for j in range(num_cols):
# Check if the row and column are in the desired range
if i in [1, 3, 5] and j in [2, 5]:
# Add the value to the output
row.append(lines[i][j])
# Add the row to the output list
output_lines.append(row)# Open the output CSV file and write the lines
with open("output.csv", 'w') as csv_file:
# Use the csv library to write to the file
writer = csv.writer(csv_file)
# Write all the rows to the file
writer.writerows(output_lines)
### 回答2:
下面是一个示例的 Python 代码,用于提取 CSV 表格的部分行和部分列,并生成新的 CSV 文件。
```python
import csv
def extract_rows_and_columns(input_file, output_file, rows, columns):
# 读取输入的 CSV 文件
with open(input_file, 'r') as file:
reader = csv.reader(file)
data = list(reader)
# 提取部分行和部分列的数据
extracted_data = []
for row in rows:
extracted_row = []
for column in columns:
extracted_row.append(data[row][column])
extracted_data.append(extracted_row)
# 写入新的 CSV 文件
with open(output_file, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(extracted_data)
# 设置要提取的行和列的索引(从0开始)
rows_to_extract = [1, 3, 5] # 提取第2、4、6行
columns_to_extract = [0, 2] # 提取第1和3列
# 调用函数提取并生成新的 CSV 文件
extract_rows_and_columns('input.csv', 'output.csv', rows_to_extract, columns_to_extract)
```
在以上示例中,`extract_rows_and_columns` 函数接受输入文件路径、输出文件路径、要提取的行和要提取的列作为参数。然后,它首先读取输入的 CSV 文件,并将其存储在一个二维列表 `data` 中。接下来,它按照给定的行和列索引,提取出部分行和部分列的数据,并将其存储在另一个二维列表 `extracted_data` 中。最后,它将 `extracted_data` 中的数据写入到输出文件中。
### 回答3:
下面是一个示例的Python代码,可以提取CSV表格的部分行和部分列,并生成一个新的CSV文件。
首先,我们需要使用`csv`模块来处理CSV文件。然后,我们可以使用`csv.reader`函数来读取原始CSV文件中的数据。接下来,我们可以根据需要提取指定的行和列,并将其保存到一个新的二维列表中。
最后,我们可以使用`csv.writer`函数来将新的二维列表写入到一个新的CSV文件中。
以下是示例代码:
```python
import csv
# 指定原始CSV文件路径
input_file = "input.csv"
# 指定需要提取的行号和列号
rows_to_extract = [1, 3, 5] # 提取1、3、5行
cols_to_extract = [0, 2, 4] # 提取0、2、4列
# 指定新的CSV文件路径
output_file = "output.csv"
# 读取原始CSV文件
with open(input_file, 'r', newline='') as file:
reader = csv.reader(file)
data = list(reader) # 将数据读入一个二维列表
# 提取指定的行和列
new_data = []
for row_index in rows_to_extract:
new_row = []
for col_index in cols_to_extract:
new_row.append(data[row_index][col_index])
new_data.append(new_row)
# 写入新的CSV文件
with open(output_file, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(new_data)
print("已生成新的CSV文件:", output_file)
```
请注意,以上代码中需要替换`input.csv`和`output.csv`为实际的文件路径。`rows_to_extract`和`cols_to_extract`分别指定了需要提取的行和列的索引,这里的索引是从0开始的。生成的新的CSV文件将保存为`output.csv`。
阅读全文