使用Python分割CSV文件表格

IPSZW 数码 2

CSV文件是一种常用的数据文件格式,其表格数据可以被多种程序轻松读取和处理。但在实际应用中,我们可能需要根据表格数据的某些特征将CSV文件分割为多份。本文将介绍如何使用Python实现对CSV文件表格数据的分割。

首先,我们需要读取CSV文件的表格数据。Python中可以使用csv模块轻松实现这一功能。下面是读取CSV文件表格数据的代码:

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

上述代码使用了Python内置函数open()打开CSV文件,并使用csv.reader()函数读取文件内的表格数据。在for循环中,我们可以按行逐个读取文件中的记录,并通过print()函数输出到屏幕。

在实际应用中,我们可能需要根据表格数据的行数将CSV文件分割为多个文件。下面是通过设置行数实现表格分割的代码:

import csv

chunksize = 10000
filename = 'data.csv'

for i, chunk in enumerate(pd.read_csv(filename, chunksize=chunksize)):
    chunk.to_csv('part{}.csv'.format(i), index=False)

上述代码中,我们使用pandas中的read_csv()函数将整个CSV文件按指定行数分割为多个块。然后,我们逐个将每个块保存为单独的CSV文件。

另外,我们也可以根据CSV文件表格中的某些特征值进行文件分割。下面是基于特征值实现表格分割的代码:

import csv

filename = 'data.csv'

with open(filename) as f:
    reader = csv.DictReader(f)
    writers = {}
    headers = None
    
    for row in reader:
        if headers is None:
            headers = row.keys()
            for header in headers:
                writers[header] = csv.writer(open('{}.csv'.format(header), 'w', newline=''))
                writers[header].writerow(headers)
                
        for k, v in row.items():
            writers[k].writerow([v])

上述代码中,我们使用了Python内置的csv.DictReader()函数读取CSV文件,并将表格数据按键值对形式存入字典对象中。我们通过构建一个字典writers来实现批量生成与CSV文件表格中的特征值相关的多个文件。然后,利用csv.writer()函数以逐行的方式向每个文件中写入表格数据。

分割CSV文件表格是数据处理任务中常见的操作。本文介绍了如何使用Python轻松实现表格分割中的基本任务,包括CSV文件表格的读取和基于特征值的文件分割。希望本文对你有所帮助。

回复

共1条回复 我来回复
  • 暂无回复内容