在dataframe中,按照其中的一列排序:好比q值倒排git
data['new_rank'] = data.groupby('house_code')['q_score_new'].rank(ascending=False, method='dense')
data.sort_values(['q_score_new'], ascending=False).groupby(['house_code']).cumcount() + 1
(1)dsort_values方法ata.sort_values(['q_score_new', 'agent_ucid'], ascending=[ False, True]).groupby(['house_code']).cumcount() + 1 # 20多秒(100多万行数据集上) (2)data = data.groupby('house_code').sort_values(by=['q_score_new', 'agent_ucid'], ascending=(False, True)).groupby('house_code').apply(f) # 200多秒(100多万行数据集上) def f(df): df['new_rank'] = range(1, len(df) + 1) return df
最终结果显示:第一种比第二种()快10倍左右(在200万行数据集上),因此推荐第二种!!!github
Modin 是加州大学伯克利分校 RISELab 的一个早期项目,旨在促进分布式计算在数据科学领域的应用。它是一个多进程的数据帧(Dataframe)库,具备与 Pandas 相同的应用程序接口(API),使用户能够加速他们的 Pandas 工做流。app
从本质上讲,Modin 所作的只是增长了 CPU 全部内核的利用率,从而提供了更好的性能。分布式
Modin 是彻底开源的,能够经过下面的 GitHub 连接得到:函数
https://github.com/modin-project/modin工具
咱们可使用以下所示的 PyPi 指令来安装 Modin:性能
pip install modin
在 Windows 环境下,Ray 是安装 Modin 所需的依赖之一。Windows 自己并不支持 Ray,因此为了安装它,用户须要使用 WSL(适用 Linux 的 Windows 子系统,适用Linux和mac)大数据
pandas的内置函数(好比groupby等)由于优化的很好,因此和modin.pandas处理速度差很少,提高主要提如今数据读取上。 一般,Modin 使用「read_csv」函数读取 2G 数据须要 2 秒,而 读取 18G 数据大约须要不到 18 秒。优化
%%time import pandas pandas_csv_data = pandas.read_csv("../800MB.csv") ----------------------------------------------------------------- CPU times: user 26.3 s, sys: 3.14 s, total: 29.4s Wall time: 29.5 s %%time import modin.pandas modin_csv_data = pd.read_csv("../750MB.csv") ----------------------------------------------------------------- CPU times: user 76.7 ms, sys: 5.08 ms, total: 81.8 ms Wall time: 7.6 s
Modin 项目仍处于早期阶段,但对 Pandas 来讲是一个很是有发展前景的补充。Modin 为用户处理全部的数据分区和重组任务,这样咱们就能够集中精力处理工做流。Modin 的基本目标是让用户可以在小数据和大数据上使用相同的工具,而不用考虑改变 API 来适应不一样的数据规模spa