国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

pandas apply 函數 實現多進程的示例講解

2020-02-22 23:47:18
字體:
來源:轉載
供稿:網友

前言: 在進行數據處理的時候,我們經常會用到 pandas 。但是 pandas 本身好像并沒有提供多進程的機制。本文將介紹如何來自己實現 pandas (apply 函數)的多進程執行。其中,我們主要借助 joblib 庫,這個庫為python 提供了一個非常簡潔方便的多進程實現方法。

所以,本文將按照下面的安排展開,前面可能比較啰嗦,若只是想知道怎么用可直接看第三部分:

- 首先簡單介紹 pandas 中的分組聚合操作 groupby。

- 然后簡單介紹 joblib 的使用方法。

- 最后,通過一個去停用詞的實驗詳細介紹如何實現 pandas 中 apply 函數多進程執行。

注意:本文說的都是多進程而不是多線程。

1. DataFrame.groupby 分組聚合操作

# groupby 操作df1 = pd.DataFrame({'a':[1,2,1,2,1,2], 'b':[3,3,3,4,4,4], 'data':[12,13,11,8,10,3]})df1

按照某列分組

grouped = df1.groupby('b')# 按照 'b' 這列分組了,name 為 'b' 的 key 值,group 為對應的df_groupfor name, group in grouped: print name, '->' print group
3 -> a b data0 1 3 121 2 3 132 1 3 114 -> a b data3 2 4  84 1 4 105 2 4  3

按照多列分組

grouped = df1.groupby(['a','b'])# 按照 'b' 這列分組了,name 為 'b' 的 key 值,group 為對應的df_groupfor name, group in grouped: print name, '->' print group
(1, 3) -> a b data0 1 3 122 1 3 11(1, 4) -> a b data4 1 4 10(2, 3) -> a b data1 2 3 13(2, 4) -> a b data3 2 4  85 2 4  3

若 df.index 為[1,2,3…]這樣一個 list, 那么按照 df.index分組,其實就是每組就是一行,在后面去停用詞實驗中,我們就用這個方法把 df_all 處理成每行為一個元素的 list, 再用多進程處理這個 list。

grouped = df1.groupby(df1.index)# 按照 index 分組,其實每行就是一個組了print len(grouped), type(grouped)for name, group in grouped: print name, '->' print group
6 <class 'pandas.core.groupby.DataFrameGroupBy'>0 -> a b data0 1 3 121 -> a b data1 2 3 132 -> a b data2 1 3 113 -> a b data3 2 4  84 -> a b data4 1 4 105 -> a b data5 2 4  3

2. joblib 用法

refer: https://pypi.python.org/pypi/joblib

# 1. Embarrassingly parallel helper: to make it easy to write readable parallel code and debug it quickly:from joblib import Parallel, delayedfrom math import sqrt

處理小任務的時候,多進程并沒有體現出優勢。

%time result1 = Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10000))%time result2 = Parallel(n_jobs=8)(delayed(sqrt)(i**2) for i in range(10000))            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西宁市| 民权县| 平塘县| 东源县| 巍山| 葵青区| 大荔县| 靖江市| 赣州市| 舞阳县| 梅州市| 长乐市| 林州市| 临澧县| 永顺县| 保靖县| 鄂托克旗| 芮城县| 尉犁县| 漾濞| 宝清县| 波密县| 东港市| 江津市| 大庆市| 青冈县| 淮北市| 黄平县| 尖扎县| 临夏市| 玉田县| 商洛市| 蒲城县| 东阿县| 大丰市| 民丰县| 桐庐县| 赣榆县| 湖南省| 阜阳市| 乌兰浩特市|