添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

怎样解决python dataframe loc,iloc循环处理速度很慢的问题

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

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

转载于:https://www.cnblogs.com/gaoss/p/7657044.html

怎样解决python dataframe loc,iloc循环处理速度很慢的问题1.问题说明最近用DataFrame做大数据 处理,发现处理速度特别慢,追究原因,发现是循环处理时,loc,iloc速度都特别慢,当数据量特别大得时候真的是超级慢。查很多资料,发现没有详细说明,以下为解决办法2.问题解决使用 Pandas.Series.apply 方法,可以对一列数据快速进行处理Series...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 浅谈Pandas dataframe 数据处理方法的 速度 比较前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了 解决 数.
今天在用pandas时,发现切片 loc 好慢! 事情是这样的… 需求:我有一个excel表,70多万行。我需要根据early_age、late_age两个字段的大小(419<=late_age<=early_age<=458)为条件,提取所有的数据,然后存入另一个excel,生成一个小的数据集。 刚开始写的代码如下: data = pd.read_excel(r'D:\xxx.xlsx') # 764544行 end_data = pd. DataFrame (columns=data.col
目录为什么写这个我的目标测试结论 为什么写这个 我学习 python 有一段时间了,但没做过什么大的项目,目前在写毕业论文,正在清洗数据。因为之前一直都是能用excel绝不用 python ,所用在对 dataframe 进行修改的时候,还是倾向一个一个的改。 数据库的文件不算特别大,在我筛选过后数据大概有20万个,之前运行的代码都挺快的,在改这个数据的时候出现了 问题 ,运行 速度 太慢了,我跑了一个多小时都没...
pandas为我们提供了多种切片方法,而要是不太了解这些方法,就会经常容易混淆。下面举例对这些切片方法进行说明。数据介绍先随机生成一组数据:In [5]: rnd_1 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_2 = [random.randrange(1,20) for x in xrange(1000)] 两者区别如下: 1、KafkaUtils.createDstream 构造函数为KafkaUtils.createDstream(ssc, [zk], [consumer group id], [per-topic,partitions] ) 使用了receivers来接收数据,利用的是...
import numpy as np from sklearn.datasets import load_boston import matplotlib.pyplot as plt dataset = load_boston(... loc 方法使用标签来选择数据, iloc 方法使用整数位置来选择数据。 例如,df. loc [2,'column']表示选择第2行和'column'列的数据,而df. iloc [2,3]表示选择第3行和第4列的数据。 这两个方法都可以使用切片来选择多行或多列的数据。例如,df. loc [2:5,'column1':'column3']表示选择第2到第5行和'column1'到'column3'列的数据。