python多进程并发demo实例解析


Posted in Python onDecember 13, 2019

这篇文章主要介绍了python多进程并发demo实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言

下午需要简单处理一份数据,就直接随手写脚本处理了,但发现效率太低,速度太慢,就改成多进程了;

程序涉及计算、文件读写,鉴于计算内容挺多的,就用多进程了(计算密集)。

代码

import pandas as pd
from pathlib import Path
from concurrent.futures import ProcessPoolExecutor

parse_path = '/data1/v-gazh/CRSP/dsf_full_fields/parse'
source_path = '/data1/v-gazh/CRSP/dsf_full_fields/2th_split' # 目录中有3.3W个csv文件,串行的话,效率大打折扣


def parseData():
  source_path_list = list(Path(source_path).glob('*.csv'))
  multi_process = ProcessPoolExecutor(max_workers=20)
  multi_results = multi_process.map(func, source_path_list)


def func(p):
  source_p = str(p)
  parse_p = str(p).replace('2th_split', 'parse')
  df = pd.read_csv(source_p)
  df['date'] = pd.to_datetime(df['date'].astype(str)).dt.date
  df.sort_values(['date'], inplace=True)
  # 处理close为负的值(abs),添加status标识
  df['is_close'] = df['PRC'].map(lambda x: 0 if x < 0 or pd.isna(x) else 1)
  df['PRC'] = df['PRC'].abs()
  df.rename(columns={'CFACPR': 'factor'}, inplace=True)
  df['adj_low'] = df['BIDLO'] * df['factor']
  df['adj_high'] = df['ASKHI'] * df['factor']
  df['adj_close'] = df['PRC'] * df['factor']
  df['adj_open'] = df['OPENPRC'] * df['factor']
  df['adj_volume'] = df['VOL'] / df['factor']
  # calc change
  df['change'] = df['adj_close'].diff(1) / df['adj_close'].shift(1) df.drop_duplicates(inplace=True)
  df.to_csv(parse_p, index=False)
parseData()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的垃圾回收机制深入分析
Jul 16 Python
深入理解Python中的内置常量
May 20 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
分析Python读取文件时的路径问题
Feb 11 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
深入了解python中元类的相关知识
Aug 29 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
构建高效的python requests长连接池详解
May 02 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 #Python
python plotly画柱状图代码实例
Dec 13 #Python
Pytorch实现的手写数字mnist识别功能完整示例
Dec 13 #Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 #Python
Python实现将蓝底照片转化为白底照片功能完整实例
Dec 13 #Python
python多进程重复加载的解决方式
Dec 13 #Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 #Python
You might like
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
javascript 节点排序 2
2011/01/31 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
vue实现购物车列表
2020/06/30 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
Python实现进程同步和通信的方法
2018/01/02 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
详解python datetime模块
2020/08/17 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
市场营销毕业生自荐信
2013/11/23 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
病人慰问信范文
2015/02/15 职场文书
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电