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 30 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
Python中turtle作图示例
Nov 15 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
Django框架用户注销功能实现方法分析
May 28 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 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
截获网站title标签之家内容的例子
2006/10/09 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
Highcharts入门之简介
2016/08/02 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
vue transition 在子组件中失效的解决
2019/11/12 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
Python reduce()函数的用法小结
2017/11/15 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Python中new方法的详解
2019/01/15 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
给孩子的新年寄语
2014/04/08 职场文书
校园元旦活动总结
2014/07/09 职场文书
班主任2015新年寄语
2014/12/08 职场文书