• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

笔记|Python 性能开发|Python各方法读取csv性能比较

武飞扬头像
长行
帮助1

以 “阿里天池 Imagine Computing 创新技术大赛赛道1:边缘云内容分发网络客户体验预测算法” 的训练数据集为例。

文件大小:1002 MB

行数:9000000

列数:18 列(其中字符串 2 列、整型 5 列、浮点型 11列)

我们使用三种方法读取训练数据集的 Excel,分别为:

第 1 种方法:使用 pandas 库的 read_csv 方法读取(直接指定各字段数据类型,避免自动判断类型消耗性能)
import pandas as pd
df = pd.read_csv(os.path.join(self.path, "training_dataset.csv"), dtype={
    "domain_name": str,
    "node_name": str,
    "avg_fbt_time": int,
    "tcp_conntime": int,
    "inner_network_rtt": int,
    "io_await_avg": int,
    "io_await_max": int,
    "synack1_ratio": float,
    "icmp_lossrate": float,
    "icmp_rtt": float,
    "ratio_499_5xx": float,
    "inner_network_droprate": float,
    "cpu_util": float,
    "mem_util": float,
    "io_util_avg": float,
    "io_util_max": float,
    "ng_traf_level": float,
    "buffer_rate": float
})
学新通

读取使用时间:15.8557 秒

第 2 种方法:使用 csv 库的 reader 类读取
from csv import reader
with open(os.path.join(self.path, "training_dataset.csv"), "r", encoding="UTF-8") as file:
    data = reader(file)
    for row in data:
        pass

读取使用时间:17.8881 秒

第 3 种方法:使用 csv 库的 DictReader 类读取
from csv import DictReader
with open(os.path.join(self.path, "training_dataset.csv"), "r", encoding="UTF-8") as file:
    data = DictReader(file)
    for row in data:
        pass

读取使用时间:30.9297 秒

结论:在多线程分段读取文件的情况下,pandas 库的 read_csv 方法的性能略优于 csv 库的 reader 类,显著优于 csv 库的 DictReader 类。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgekiha
系列文章
更多 icon
同类精品
更多 icon
继续加载