python 千万级数据处理_Python实现 ! 千万级别数据处理

今天分享一个数据清洗小技巧,可以让你在遇到百万、千万级别数据的时候游刃有余。先来说说问题的背景

现在有一个 csv 格式的数据集,大概 2千万条 左右的样子,存储的是用户的网络交互数据,其中电话号码作为用户的唯一标识。再来看看我们要做啥

首先我们需要针对这批用户确定所属运营商,其次根据交互数据对各运营商的用户感知情况进行分析,最后给出各运营商的相应优化解决措施。

这个目标的第一部分:确定用户归属运营商,正好可以用今天这个小技巧去解决。

判断两千万个号码中每个号码归属的运营商,你应该首先会想到循环遍历。

但是你如果真的挨个号码去遍历一次,你会发现读一遍数据都需要好久,甚至可能会需要几分钟、十几分钟。

所以今天会用到 Pandas 中的矢量化操作,通过isin 函数进行筛选过滤,完成上面这个任务 只需要一两秒

矢量化操作

矢量化,有别于对每一个单独的值(标量)进行操作,是 Pandas 底层支持的对于整个 Array 进行的操作,也是Pandas 中执行的最快的方法。

这种操作适用于对某一列的全体数据进行普适的操作,即矢量化是对整个数组执行操作的过程。

矢量化操作适用于 Pandas 的 Dataframe,Series 对象

Pandas 对于常用的函数,例如求和、平均值等常用统计函数做了非常好的矢量化支持。

在大多数场景下,我们需要做的只是 把一整列的元素,当成一个元素去处理,Pandas 会自动把函数应用到每一个单元格上。例如df_data['age'] = df_data['age'] + 5

这就是最简单的矢量化

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值