python中DataFame一些性能优化的小小技巧

        减少循环,提高运行效率,灵感来源,实习接的一些需求,看到运行时间预计要几小时那瞬间奔溃有点

  1. 情景: 增加一列进行打标分几个类别
    套两个循环 结果
    在这里插入图片描述
    用isin()优化后
for j in tqdm(range(len(bcc_brand_list))):
    df.loc[df['brand_name'].isin(bcc_brand_list), 'category'] = 'BCC'
for j in tqdm(range(len(fc_brand_list))):
    df.loc[df['brand_name'].isin(fc_brand_list), 'category'] = 'FC'

在这里插入图片描述
2,3秒就好了,快了上千倍
2. 同理 循环一个个判断字符串的哇也很久
优化方案用contains()

last_data['buzz'][i] = temp.loc[temp['keywords'].str.contains(last_data['keyword_2'][i])]['buzz'].sum()
  1. 类似求超多词语词频的情况, 可以借用jieba分词时用的思路
    用Counter()
  2. 有时对于两个循环遍历的, 而且数据量很大,达到千万级别, 可以可以考虑分段减少循环 结合实际情况break等等方法都可以实现

总结

感觉接触点有趣的东西, 打算找本相关的书来看一下
在这里插入图片描述

努力继续更新上来

偶尔发现的apply函数的新用法
我一般是在dataframe格式的数据里面用

data['A'] = data['A'].apply(lambda x:x+2)

就是一般我是针对某一列进行处理
现在发现可以同时对某几列一起处理

data['result'] = data.apply(lambda x: '["'+'","'.join([x['industry'],x['brand_id'],x['brand_name']])+'"]',axis=1)

对几列进行操作合并
联想到groupby一下可以多行变一行的感觉
在这里插入图片描述

总结

专栏学习

01 【数据分析实战项目】: 无人智能售货机商务分析线上课程智能推荐学术前沿趋势分析

02 【算法--数据挖掘】: 机器学习----吃瓜教程!集成学习深度学习 学术前沿趋势分析

03 【天池数据挖掘竞赛】: 心电信号多分类分类新闻推荐入门赛系统项目

04 【Python数据分析】: Numpy 数值计算基础Matplotlib 数据可视化基础Pandas 统计分析基础Pandas 进行数据预处理scikit-learn 构建模型

往期精彩内容

01 【常见的数据分析师的面试问题】: 基础知识考查、概率论与数理统计、数据挖掘、常见模型介绍、数据分析师工作必备技能等等

02 【基于条件随机场模型的中文分词】: 中文分析、python代码实现

03 【 Github开源项目】: Github开源项目 数分/数挖学习路线

       欢迎关注我,一起交流学习探索数据分析的世界,洞察数据!努力接受社会毒打~~

@翀- 我的博客主页

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值