Python利用pandas拆分大型的csv文件
当将大型CSV文件拆分成较小的文件时,您可以使用Python的Pandas库来处理
导入必要的库
import pandas as pd
定义拆分函数
当定义拆分函数时,我们将在以下步骤中处理CSV文件的拆分
def split_csv(input_file, chunk_size): # 读取CSV文件 dtype_options = {'column9': str, 'column26': str, 'column27': str, 'column28': str} df = pd.read_csv(input_file, dtype=dtype_options, low_memory=False)
首先,我们使用pd.read_csv()
函数从指定的CSV文件中读取数据。在这个例子中,我们还为某些列指定了数据类型选项,以确保正确解析这些列的内容。您可以根据实际情况调整这些选项。
接下来,我们需要计算拆分数据框的次数:
num_chunks = len(df) // chunk_size + 1
我们使用len(df)
获取数据框中的总行数,并通过将其除以拆分大小并向上取整来计算拆分的次数。
然后,我们进行实际的拆分操作,并将每个拆分后的数据框保存为单独的CSV文件:
for i in range(num_chunks): start_idx = i * chunk_size end_idx = (i + 1) * chunk_size chunk_df = df.iloc[start_idx:end_idx] output_file = f'output_chunk_{i + 1}.csv' chunk_df.to_csv(output_file, index=False)
在循环中,我们按照拆分大小切片数据框,并将切片后的数据框保存为一个命名为 output_chunk_{i + 1}.csv
的CSV文件。这里使用了格式化字符串以便为每个拆分文件指定一个唯一的编号。
调用拆分函数
if __name__ == "__main__": # 定义输入文件和拆分大小 input_file = r'C:\Users\Administrator\Desktop\数据核对\Result_19.csv' chunk_size = 500000 # 调用拆分函数 split_csv(input_file, chunk_size)
完整代码
import pandas as pd def split_csv(input_file, chunk_size): # 读取CSV文件 dtype_options = {'column9': str, 'column26': str, 'column27': str, 'column28': str} df = pd.read_csv(input_file, dtype=dtype_options, low_memory=False) # 计算拆分的次数 num_chunks = len(df) // chunk_size + 1 # 拆分数据框并保存为多个CSV文件 for i in range(num_chunks): start_idx = i * chunk_size end_idx = (i + 1) * chunk_size chunk_df = df.iloc[start_idx:end_idx] output_file = f'output_chunk_{i + 1}.csv' chunk_df.to_csv(output_file, index=False) if __name__ == "__main__": # 替换以下行中的文件名和拆分大小 input_file = r'C:\Users\Administrator\Desktop\数据核对\Result_19.csv' chunk_size = 500000 split_csv(input_file, chunk_size)