在Python中分割CSV文件可以通过多种方法实现,以下是使用`pandas`和`csv`模块的两种常见方法:
使用`pandas`库
import pandas as pd
读取CSV文件
data = pd.read_csv('input.csv')
分割数据为多个子集
chunks = [data[i:i + 100] for i in range(0, data.shape, 100)]
保存每个子集到不同的CSV文件
for i, chunk in enumerate(chunks):
chunk.to_csv(f'output_part_{i}.csv', index=False)
使用`csv`模块
import csv
import os
def split_csv(file_path, delimiter=',', chunk_size=1000):
with open(file_path, 'r', newline='') as f:
reader = csv.reader(f, delimiter=delimiter)
lines = list(reader)
计算需要分割的块数
num_chunks = (len(lines) + chunk_size - 1) // chunk_size
创建输出文件路径
output_dir = os.path.dirname(file_path)
for i in range(num_chunks):
start = i * chunk_size
end = min((i + 1) * chunk_size, len(lines))
output_file = os.path.join(output_dir, f'split_{i}.csv')
写入数据到新的CSV文件
with open(output_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(lines[start:end])
调用函数
split_csv('input.csv')
以上代码展示了如何使用`pandas`和`csv`模块分割CSV文件。`pandas`方法更简洁,适合处理大型数据集;`csv`方法则提供了更多的控制,比如自定义分隔符。
请根据您的具体需求选择合适的方法。