数据分析之Python可变数据类型高效编程

用 Python 做数据分析,主要的技术栈是 Python 基础和三驾马车 NumPy、Pandas 和 Matplotlib。先搞定 Python 基础吧。

Python3 有六个标准数据类型

  • 不可变类型:Number(数字)、String(字符串)、Tuple(元组)
  • 可变类型:List(列表)、Dictionary(字典)、Set(集合)

相比不可变类型数据处理起来较明确,可变类型的骚操作就多很多。

你可以快速了解 Python 语法,基于这些语法知识,你可能能够尝试出你想得到的数据,但了解一些高阶技巧是很有必要的。

高阶技巧不仅能加快你 code 的速度,还能让代码更优美,从而实现高效编程。

本文针对这 3 个可变类型,提炼出 5 个高频问题,吃透这几个高阶编程技巧。

  1. 如何在列表、字典、集合中根据条件筛选数据
  2. 如何统计序列中元素的出现频率
  3. 如何根据字典中值的大小,对字典中的项进行排序
  4. 如何快速找到多个字典中的公共键
  5. 如何让字典保持有序
1.如何在列表、字典、集合中根据条件筛选数据?
  1. 列表
    • filter 函数 filter(lambda x : x>=0, data)
    • 列表解析 [x for x in data if x >= 0]
  2. 字典
    • 字典解析 {k : v for k, v in d.iteritems() if v > 90}
  3. 集合
    • 集合解析 {x for x in s if x%3 == 0}

列表

>>> from random import randint
>>> data = [randint(-10, 10) for _ in range(10)]
>>> data
[2, -9, 2, -2, -10, -2, -1, 8, 3, 3]
>>> filter(lambda x: x >= 0, data)
[2, 2, 8, 3, 3]
>>> [x for x in data if x >= 0]
[2, 2, 8, 3, 3]

即使 filter 函数执行更快,耐不住列表解析既优美又连贯。工作中大家很爱用列表解析,推荐指数五颗星。

字典和集合

# 字典
>>> d = {
   x: randint(60, 100) for x in range(1, 11)}
>>> d
{
   1: 61, 2: 71, 3: 86, 4: 79, 5: 64, 6: 88, 7: 71, 8: 88, 9: 94, 10: 65}
>>> {
   k: v for k, v in d.items() if v > 90}
{
   9: 94}

# 集合
>>> data
[2, -9, 2, -2, -10, -2, -1, 8, 3, 3]
>>> s = set(data)
>>> s
set([2, 3, 8, -2, -10, -9, -1])
>>> {
   x for x in s if x % 3 == 0}
set([3, -9])

可以看到解析的方式代码很连贯,对于任何一个可迭代对象都可以用同样的逻辑去code。

2.如何统计序列中元素的出现频率?
  1. 随机序列中元素频率统计
  2. 词频统计:找出出现次数最高的 5 个单词,及出现次数
>>> from random import randint
>>> data = [randint(0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值