pandas读写csv excel pinkle 的性能比较

2023-11-10

在数据分析工作中,csv、excel、pinkle这三种格式的文件经常会被用到,但是pandas读取这3种格式的数据究竟性能如何呢,我准备了13列 17519行的excel数据
测试了一下,结果是这样:

  csv xls pickle
字节数MB 1.26 1.09 1.13
读数据耗费时间:秒 0.044 4.992 0.009
写数据耗费时间:秒 0.336 15.982 0.01

从这个测试结果可以得到以下结论:
xls格式的数据占磁盘空间最小,读写速度最慢,但是最直观
pickle格式的数据读写速度最高,csv次之,但是最不直观

简而言之,xls格式的数据是给人看的,因此最直观,但是读写速度最慢,pickle格式的数据是给机器用的,因此读写速度最高,但是最不直观。

测试代码如下:
 

import pandas as pd
import time
import pickle

def use_time(fun):
    def wrap(*args, **kw):
        start = time.time()
        result = fun(*args, **kw)
        end = round(time.time()-start,3)
        print('{0} 耗费时间{1}'.format(fun.__name__,end))
        return result #,end 这里可以返回每个被调用的方法的具体耗费时间
    return wrap



# 写pickle文件
@use_time
def writePickle(df,file):
    df.to_pickle(file)

# 写csv
@use_time
def writeCsv(df,file):
    df.to_csv(file)
    
# 写excel
@use_time
def writeExcel(df,file):
    df.to_excel(file)
    
# 读取xls文件
@use_time
def readExcel(file):
    df = pd.read_excel(file)
    return df

# 读取pickle文件
@use_time
def readPickle(file):
    df = pd.read_pickle(file)
    return df

#读csv
@use_time
def readCsv(file):
    df = pd.read_csv(file)
    return df


srcfile =  r'E:\pandas\2019.xlsx'
dest_xls = r'E:\pandas\2019_.xlsx'
dest_pkl = r'E:\pandas\2019.pkl'
dest_csv = r'E:\pandas\2019.csv'

def testRead():
    df1 = readPickle(dest_pkl)
    df2 = readCsv(dest_csv)
    df3 = readExcel(srcfile)
    
def testWrite():    
    df1 = readExcel(srcfile)
    print('-'*50)
    writePickle(df1,dest_pkl)    
    writeCsv(df1,dest_csv)   
    writeExcel(df1,dest_xls)
    
def test():
    #先测试写
    testWrite();
    print('*'* 50)    
    
    # 后测试读
    testRead()

test()

我测试时是先创建好2019.xlsx,然后用pandas把这个文件保存成csv  pickle两种格式,然后再测试读取xls  csv  pickle,因此运行测试代码时也是这个顺序。运行结果如下:
 

readExcel 耗费时间5.099
-------------------------------------------------- 
writePickle 耗费时间0.016
writeCsv 耗费时间0.426
writeExcel 耗费时间12.865

**************************************************
readPickle 耗费时间0.008
readCsv 耗费时间0.046
readExcel 耗费时间5.148

多次运行后发现这里的时间总是变化的,但是基本的趋势不变,比如读写pickle总是最快的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas读写csv excel pinkle 的性能比较 的相关文章

随机推荐

  • 谷歌chrome编辑css样式不显示

    最近在用vscode编辑css代码的时候使用 在IE浏览器 qq浏览器 等其他浏览器上都可以显示 但是用谷歌浏览器没有显示任何效果 这里我在网上找到的原因是 谷歌浏览器会缓存页面的原css 要用Ctrl F5才可以重新加载修改后的css样式
  • 分区索引笔记(三)--全局分区索引

    全局分区索引在一个索引分区中包含来自多个表分区的键 一个全局分区索引的分区键是分区表中不同的或指定一个范围的值 在创建全局分区索引时 必须定义分区键的范围和值 全局索引只能是B树索引 Oracle在默认情况下不会维护全局分区索引 如果一个分
  • MPU6050使用心得(简单分享一下)

    前言 选用MPU6050做 倾斜检测 功能 前期准备 开发板 正点原子STM32F103 精英版 STM32F103ZET6 模块 GY 521 MPU6050 其他 杜邦线若干 烧录线 FlyMcu Keil5 正点原子开发板配套的套件
  • 镜头景深计算公式的推导

    景深是指成像画面中最近清晰点到最远的清晰点之间的范围 由于传感器或胶片的分辨率限制 或者照片冲洗放大后在一定距离观看时 受到人眼的分辨率极限限制 通常会将清晰这一概念与底片上一定尺寸的弥散斑大小相关联 按照传统的景深定义 物距为u1的点光源
  • IDEA 卡死的几种解决方案

    idea最为最为流行的Java开发工具其智能化提示对于开发人员非常友好 大大提高开发效率 不过我们在平时开发的时候不可避免的遇到idea卡死的情况 以下是我在平时遇到卡死的情况下的解决方法 1 调大idea内存配置参数 修改完后保存重启 X
  • 常用距离算法 (原理、使用场景、Python实现代码)

    距离度量是有监督和无监督学习算法的基础 包括k近邻 支持向量机和k均值聚类等 距离度量的选择影响我们的机器学习结果 因此考虑哪种度量最适合这个问题是很重要的 因此 我们在决定使用哪种测量方法时应该谨慎 但在做出决定之前 我们需要了解距离测量
  • 天拓分享:关于S7-1200和S7-300之间的通信

    1 S7 1200 的PROFINET 通信口 S7 1200 CPU 本体上集成了一个 PROFINET 通信口 支持以太网和基于 TCP IP 的通信标准 使用这个通信口可以实现 S7 1200 CPU 与编程设备的通信 与hmi触摸屏
  • 如何在 Debian 11 上设置一个静态 IP 地址

    当你在电脑上安装一个新的操作系统时 DHCP服务器会给你分配一个动态IP地址 然而 在各种情况下 你可能需要在你的机器上设置一个静态IP地址 例如 当你正在托管一个网络服务器 或者任何服务需要一个IP地址而不是域名 或者在你即将授予某人远程
  • LayoutParams布局

    AbsoluteLayout LayoutParams可以重新设置坐标 然后调用setLayoutParamsLinearLayout LayoutParams可以调用setMargins 来移动控件位置比如在调用rootLayout ad
  • VSCode的C/C++环境初始化(2022版)

    提前说明 如果中间 VSCode 提示要装插件 直接点击安装推荐的第一个即可 下拉框有 g 编译 gdb 调试 可以盲选 第一步 下载MinGW64 下载地址 https sourceforge net projects mingw w64
  • (十五)Mybatis当中一级二级缓存用法详解

    学习Mybatis一级二级缓存看这一篇足够了 写的非常详细 用法及代码示例都写出来了 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧 目录 一级缓存 一级缓存使用示例 一级缓存失效示例 1 sqlSes
  • mariadb之半同步

    补充说明 做的时候楼主没看清楚版本号 10 2以前是my conf 以后是my conf d server conf 楼主本人是写到了server这个文件里 请大家注意 可能不显示模式的原因可能就是写错配置文件了 等我明天重新做一遍 看看有
  • java版4人过桥问题

    夜晚 桥头有 4个人在一起准备过桥 这些人中只有一个人有手电筒 从桥头走到桥尾一次最多只能俩个人同时行进 每个人单独过桥的时间可能不一样 如果两个人在一起走 则这次的花费时间是走的最慢的那个人 假如现在四个人单独过桥的时间分别是 1 2 5
  • 管理员后台页面html代码,HTML5技术实现的管理员后台模板界面

    实例简介 一套采用了CSS3和HTML5技术实现的后台管理界面 不具备具体的管理功能 只是一个界面 但使用了最新的HTML5技术 网页上有超多你见不到的新效果 新形式 包括图表等 是下一个WEB技术的革命创新 有兴趣的可不要错过哦 学习HT
  • 安装某些工具不能用时,可能环境变量出现问题

    安装某些工具不能用时 可能环境变量出现问题 尝试使用 echo PATH 查看在环境中的变量 如果环境中没有该变量 退出重进 还是没有就或者手动添加
  • 事件内核对象 CreateEvent

    事件内核对象是在线程同步时比较常用的内核对象 一个事件内核对象的触发表示一个操作已经完成 有两种类型的事件内核对象 手动重置事件和自动重置事件 当一个手动重置对象被触发的时候 正在等待该事件的所有线程都将变成可调度状态 而当一个自动重置事件
  • 互联网+国家战略-整理

    互联网 国家战略 前言 互联网 普惠经济 跨界 融合 连接一切 互联网 的密码 第一篇 互联网 纳入国家计划 什么是互联网 怎么理解 加什么 互联网 与国家影响力 互联网 融合共识 协同行动 互联网 六大特征 跨界融合 创新驱动 重塑结构
  • 结构体定义struct和typedef struct的区别(重新整理版)

    1 结构体的定义 允许用户自己建立由不同类型数据组成的组合型的数据结构 它称为结构体 实际上应称为 结构体类型 2 struct的用法 下面以一个结构体实例来说明一下 struct os tcb OS STK OSTCBStkPtr OS
  • Xor Sum 2二分/尺取 区间异或和等于区间和的方案数

    题目描述 There is an integer sequence A of length N Find the number of the pairs of integers l and r 1 l r N that satisfy th
  • pandas读写csv excel pinkle 的性能比较

    在数据分析工作中 csv excel pinkle这三种格式的文件经常会被用到 但是pandas读取这3种格式的数据究竟性能如何呢 我准备了13列 17519行的excel数据 测试了一下 结果是这样 csv xls pickle 字节数M