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



广而告之