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判断变量是否已经定义的方法
Aug 18 Python
Python代码缩进和测试模块示例详解
May 07 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
通过python顺序修改文件名字的方法
Jul 11 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
python生成随机红包的实例写法
Sep 02 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 Python
Python 列表反转显示的四种方法
Nov 16 Python
Python编写nmap扫描工具
Jul 21 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
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
javascript 获取表单file全路径
2009/12/31 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
成人教育自我鉴定
2013/11/01 职场文书
社团活动策划书范文
2014/01/09 职场文书
红色故事演讲稿
2014/05/22 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL