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中的内置函数getattr()介绍及示例
Jul 20 Python
python多线程方式执行多个bat代码
Jun 07 Python
python实现数据图表
Jul 29 Python
Centos7 Python3下安装scrapy的详细步骤
Mar 15 Python
python中的常量和变量代码详解
Jul 25 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
python 初始化一个定长的数组实例
Dec 02 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
如何通过安装HomeBrew来安装Python3
Dec 23 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编写简单的App接口
2016/08/28 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
python实现在sqlite动态创建表的方法
2015/05/08 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
什么是数组名
2012/05/10 面试题
优秀毕业生自我鉴定
2014/01/19 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
学位证书委托书
2014/09/30 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
JavaScript实现简单计时器
2021/06/22 Javascript
《废话连篇——致新手》——chinapizza
2022/04/05 无线电
python创建字典及相关管理操作
2022/04/13 Python