首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何提高迭代的性能

如何提高迭代的性能
EN

Stack Overflow用户
提问于 2020-07-29 05:32:11
回答 1查看 43关注 0票数 1

我有一个巨大的数据集,我需要计算每一行的重复项的数量。例如:在特定行中,我有客户X。我需要创建一个新列,该列将显示客户X在数据集中注册的次数。我做了一个关于这方面的代码,但性能非常差。我将花费大约3天的时间,直到数据集完成。有人能帮助提高这个计算的性能吗?下面是我的想法的一个例子:

代码语言:javascript
运行
复制
#importing resources
import sys
import pandas as pd
from __future__ import print_function
代码语言:javascript
运行
复制
#creating a dataset as example:
df1= pd.DataFrame({'Customer':["Wilfred","Abner","Rishcash","Debie"],'Dealer':["Alpha","Beta","Gama","Delta"],'Vehicle_model':["Jeep","Volks","Chrysler","Volvo"],'CITY':["Osasco","Denver","Rome","Tokyo"]})
代码语言:javascript
运行
复制
#creating new columns
df1['Qtd leads']=1
df1['Qtd dealers']=1
df1['Leads City']=1
df1['Leads State']=1
df1['Leads V_Model']=1
代码语言:javascript
运行
复制
#function to estimate repetitive values
def cont(quem):
    a=df1['Customer'].value_counts()[quem]
    return a
代码语言:javascript
运行
复制
#iterate in the dataset
i=0
for i in df1.index:
    df1['Qtd leads'][i]=df1['Customer'].value_counts()[df1['Customer'][i]]
    df1['Qtd dealers'][i]=df1['Dealer'].value_counts()[df1['Dealer'][i]]
    df1['Leads V_Model'][i]=df1['Vehicle_model'].value_counts()[df1['Vehicle_model'][i]]
    df1['Leads City'][i]=df1['CITY'].value_counts()[df1['CITY'][i]]
    print(i, end='\r')
    sys.stdout.flush()
EN

回答 1

Stack Overflow用户

发布于 2020-07-29 06:26:52

您可以使用groupby和merge。

城市示例:

代码语言:javascript
运行
复制
dfcity = df1.groupby(by='CITY').size().reset_index().rename(columns={0 : 'Leads City'})
df1 = pd.merge(df1,dfcity,on='CITY')

df1.groupby(by='CITY')根据“城市”对你的数据帧进行分组。这为你提供了一个groupby对象,它有很多很好的函数来查看这些分组的数据--例如size()

然后,.size()为您提供一个以城市为索引的数据帧,以及它被视为第0列的频率。

然后,reset_index()将索引还原为列,因此您有两列: CITY和0。

接下来,重命名0列(.rename(columns={0 : 'Leads City'}))

最后,将原始数据帧与列'CITY‘中的新数据帧合并

df1 = pd.merge(df1,dfcity,on='CITY')

您可以对要计数的每一列重复此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63143081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档