csv转xlsx
之前分享的数据集都是体量特别大,而且都是用csv格式存储。之前有 数据集(付费) | 2001年-2022年A股上市公司年报&管理层讨论与分析 显示同样的信息量,使用xlsx所占用的存储空间比csv要小很多。如果能将这些数据集转成xlsx,将大大方便分享,且能节约后续读取数据的速度,但要记住xlsx最多只能存储104万行(记录)。
今天以3751w专利申请数据为例, 将csv转为xlsx。
代码
我们希望程序能够自动读取csv, 不论csv中有多少行,每个xlsx最多存储100w行。
将代码放置于数据集文件夹内,即ipynb文件与多个csv文件同处于一个文件夹内。
import pandas as pd
import os
#获取csv文件路径列表
csvfs = [f for f in os.listdir('.') if '.csv' in f]
for csvf in csvfs:
#批次读取,即每次只读100w行
chunk_dfs = pd.read_csv(csvf, chunksize=1000000)
#文件名计数
file_counter = 1
#每个chunk不超过100w行
for chunk_df in chunk_dfs:
xlsxf = csvf.replace('.csv', '') + '_{}.xlsx'.format(file_counter)
#将chunk存到xlsx中
chunk_df.to_excel(xlsxf, index=False)
file_counter += 1