学堂 学堂 学堂公众号手机端

DataFrame在大数据处理过程中很慢的问题该怎么办

lewis 6年前 (2019-06-21) 阅读数 9 #技术
这篇文章主要介绍了DataFrame在大数据处理过程中很慢的问题该怎么办相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇DataFrame在大数据处理过程中很慢的问题该怎么办文章都会有所收获,下面我们一起来看看吧。

1.问题说明

最近用DataFrame做大数据 处理,发现处理速度特别慢,追究原因,发现是循环处理时,loc,iloc速度都特别慢,当数据量特别大得时候真的是超级慢。查很多资料,发现没有详细说明,以下为解决办法

2.问题解决

使用 Pandas.Series.apply 方法,可以对一列数据快速进行处理

Series.apply(*func*, *convert_dtype=True*, *args=()*, **\*kwds*)


函数说明:

To lunch typora from Terminal, you could add

func : function
convert_dtype : boolean, default True
    Try to find better dtype for elementwise function results. If False, leave as dtype=object
args : tuple
    Positional arguments to pass to function in addition to the value
Additional keyword arguments will be passed as keywords to the function

例子讲解

# 首先导入数据
>>> import pandas as pd
>>> import numpy as np
>>> series = pd.Series([20, 21, 12], index=['London','New York','Helsinki'])
>>> series
London      20
New York    21
Helsinki    12
dtype: int64

# 应用1,把每个值都*2
>>> def square(x):
...     return x**2
>>> series.apply(square)
London      400
New York    441
Helsinki    144
dtype: int64
>>> series.apply(lambda x: x**2)
London      400
New York    441
Helsinki    144
dtype: int64

# 应用2,相减
>>> def subtract_custom_value(x, custom_value):
...     return x-custom_value
>>> series.apply(subtract_custom_value, args=(5,))
London      15
New York    16
Helsinki     7
dtype: int64

# 使用numpy library中得函数
>>> series.apply(np.log)
London      2.995732
New York    3.044522
Helsinki    2.484907
dtype: float64

3.总结

这样可以快速操作一列数据,不必循环操作每行每列数据,对于大数据处理是非常有用的


这篇关于“DataFrame在大数据处理过程中很慢的问题该怎么办”的文章就介绍到这了,更多相关的内容,欢迎关注博信,小编将为大家输出更多高质量的实用文章!
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门