python:HDF和CSV存储优劣对比分析


Posted in Python onJune 08, 2020

小数据用csv,大数据用h5

结论1:几百KB以上的数据都用h5比较好

结论2:几KB的数据h5反而很慢

程序

import pandas as pd
import numpy as np
from wja.wja_tool import test_time as tt
from wja import wja_tool as tool

df = tool.generate_sampleDF(row, col)

tt().run()
df.to_csv('try.csv')
tt().end()

tt().run()
df.to_hdf('try.h5','df',mode='w')
tt().end() 

tt().run()
df1 = pd.read_csv('try.csv')
tt().end()

tt().run()
df2 = pd.read_hdf('try.h5')
tt().end()

对比1:数据10*1

df = tool.generate_sampleDF(10,1)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:0.015
程序用时:0.9985
程序用时:0.009
程序用时:0.0369

对比2:数据100*10

df = tool.generate_sampleDF(100,10)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:0.017
程序用时:1.1016
程序用时:0.01
程序用时:0.013

对比3:数据1000*100

df = tool.generate_sampleDF(1000,100)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:0.2383
程序用时:1.0308
程序用时:0.0499
程序用时:0.016

对比4:数据10000*100

df = tool.generate_sampleDF(10000,100)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:2.0895
程序用时:1.0073
程序用时:0.4055
程序用时:0.0169

对比5:数据10000*1000

# csv保存
# hdf保存
# csv读取
# hdf读取
df = tool.generate_sampleDF(10000,1000)

python:HDF和CSV存储优劣对比分析

# csv保存
# hdf保存
# csv读取
# hdf读取
程序用时:23.5693
程序用时:2.2057
程序用时:3.3697
程序用时:0.0619

补充知识:python:n个点m条边有权无向图

n个点:有个位置

m条边:两点之间存在m条边有权值

有权:每条边代表一个数值

无向:没有规定行进方向

规定:

1、两点之间的行进路线,最终权值为所经过的边的权值的最大值

2、两点之间走法不止一个,最终取最小值为最终走法

问:

两点之间的最终权值为多少

python:HDF和CSV存储优劣对比分析

如上图,我们可以将其写为列表形式,前两位是从小到大的的两个点,最后一个代表权值,如
[1, 2, 2] 代表1和2之间的权值是2,以此类推

n,m = 5, 10
road = [[1, 2, 2], [1, 3, 3], [1, 4, 7], [1, 5, 2],
    [2, 3, 4], [2, 4, 9], [2, 5, 5], [3, 4, 4],
    [3, 5, 5], [4, 5, 3]]

def hold(list1, list2):
  jiaoji = list(set(list1)&set(list2))
  need = [i for i in set(list1+list2) if i not in jiaoji]
  need.sort()
  return need

def get(road):
  option = {}
  for i in range (m):
    option[(road[i][0],road[i][1])] = [road[i][2]]
  for i in range (m):
    for j in range(i+1,m):
      dot = hold(road[i][:2], road[j][:2])
      if len(dot)==2:
        if (dot[0],dot[1]) in option.keys():
          option[(dot[0],dot[1])].append(max([road[i][2],road[j][2]]))
        else:
          option[(dot[0],dot[1])] = []
          option[(dot[0],dot[1])].append(max([road[i][2],road[j][2]]))
  road_new = []
  for i in option.items():
    road_new.append(list(i[0])+[min(i[1])])
  if road==road_new:
    print(road_new)
    return road_new
  return get(road_new)

输出结果

所有可能的走法如下,并且最后一位输出最短的权值路径。

例如 [2, 3, 3]:代表 从2走到3最短的权值路径是3,对应路径从图中可以到是2-1-3

例如 [3, 5, 3]:代表 从3走到5最短的权值路径是3,对应路径从图中可以到是3-1-5

[[1, 2, 2], [1, 3, 3], [1, 4, 3], [1, 5, 2], [2, 3, 3],
[2, 4, 3], [2, 5, 2], [3, 4, 3], [3, 5, 3], [4, 5, 3]]

以上这篇python:HDF和CSV存储优劣对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python异常处理总结
Aug 15 Python
python写入中英文字符串到文件的方法
May 06 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
Dec 25 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
Python实现弹球小游戏
Aug 01 Python
Python如何将模块打包并发布
Aug 30 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 #Python
Python while true实现爬虫定时任务
Jun 08 #Python
python 实现rolling和apply函数的向下取值操作
Jun 08 #Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 #Python
Python实现查找数据库最接近的数据
Jun 08 #Python
python numpy库np.percentile用法说明
Jun 08 #Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
You might like
javascript如何使用bind指定接收者
2014/05/04 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
运动会表扬稿大全
2014/01/16 职场文书
优秀员工推荐信
2014/05/10 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
岳庙导游词
2015/02/04 职场文书
主题班会开场白
2015/06/01 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis