pandas读写csv excel pinkle 的性能比较

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

 csvxlspickle
字节数MB1.261.091.13
读数据耗费时间:秒0.0444.9920.009
写数据耗费时间:秒0.33615.9820.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总是最快的。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用 Pandas CSV 文件非常简单,只需要使用 `read_csv()` 方法即可。例如,假设我们要取名为 `data.csv` 的 CSV 文件,可以按照以下方式取: ```python import pandas as pd data = pd.read_csv('data.csv') ``` 这样就可以将 `data.csv` 文件中的数据取并存储到名为 `data` 的 Pandas DataFrame 对象中。当然,`read_csv()` 方法还有很多参数可以进行配置,例如指定文件的编码方式、分隔符、列名等等。具体使用方法可以参考 Pandas 官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html。 ### 回答2: Pandas是一个流行的Python第三方库,主要用于数据分析和数据处理。在Pandas中,可以使用read_csv函数来csv文件。 要csv文件,首先需要导入Pandas库。一般使用以下方式导入: ```python import pandas as pd ``` 然后使用read_csv函数来csv文件。read_csv函数的基本语法如下: ```python df = pd.read_csv('文件路径') ``` 其中,'文件路径'指定需要取的csv文件的路径和文件名。 当取成功后,数据将会被存储在一个叫做DataFrame的二维数据结构中。可以使用df变量来访问和处理这个DataFrame。 下面是一个具体的例子,假设存在一个名为data.csvcsv文件,文件内容如下: ``` 姓名,年龄,性别 张三,25,男 李四,30,女 王五,28,男 ``` 我们可以使用以下代码来取这个csv文件: ```python import pandas as pd df = pd.read_csv('data.csv') ``` 取成功后,可以通过打印df来查看DataFrame的内容: ```python print(df) ``` 输出结果为: ``` 姓名 年龄 性别 0 张三 25 男 1 李四 30 女 2 王五 28 男 ``` 通过这种方式,可以方便地使用Pandascsv文件,并对数据进行操作和分析。 ### 回答3: pandas是一个用于数据分析和处理的强大Python库。它提供了各种功能和方法来取、处理和分析各种数据源,包括CSV文件。 要使用pandasCSV文件,我们可以使用pandas的read_csv()函数。这个函数能够从本地计算机的文件系统中CSV文件,并将其转换为pandas的DataFrame对象。 为了使用read_csv()函数,首先需要导入pandas库。你可以使用下面的代码完成导入: ```python import pandas as pd ``` 一旦导入了pandas库,就可以使用read_csv()函数来CSV文件了。read_csv()函数的基本语法如下: ```python pd.read_csv('文件路径') ``` 在这个语法中,'文件路径'是指要取的CSV文件的路径。可以使用相对路径或绝对路径来指定文件的位置。 例如,如果要取名为“data.csv”的CSV文件,它位于与当前工作目录相同的文件夹中,可以使用以下代码取文件: ```python data = pd.read_csv('data.csv') ``` CSV文件后,数据将被存储在一个DataFrame对象中,并赋值给变量"data"。你可以使用该变量来操作和分析数据。 此外,read_csv()函数还有许多可选的参数,可以根据需要进行设置,例如指定分隔符、编码方式、列名等。你可以参考pandas官方文档来了解更多有关read_csv()函数的参数信息。 综上所述,pandas的read_csv()函数提供了一种速且方便的方式来CSV文件,并将其转换为DataFrame对象,以进行进一步的数据分析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值