2021暑期 | 结构模型、Stata实证前沿、Python数据挖掘暑假工作坊
Clumper可以用来处理嵌套样式的json数据结构。
安装
!pip3 install clumper
为了展示Clumper如何工作,我准备了pokemon.json, 由列表组成(该列表由多个字典组成),下面是pokemon.json部分内容
import json
with open('pokemon.json') as jsonf:
pokemon = json.loads(jsonf.read())
pokemon[:2]
[{'name': 'Bulbasaur',
'type': ['Grass', 'Poison'],
'total': 318,
'hp': 45,
'attack': 49},
{'name': 'Ivysaur',
'type': ['Grass', 'Poison'],
'total': 405,
'hp': 60,
'attack': 62}]
我们准备的pokemon.json列表中大概有800个字典,数量级刚刚好,不会因为太大导致电脑无法运行数据分析,也不会太小导致手动操作性价比更高。
基本操作
from clumper import Clumper
list_of_dicts = [
{'a': 7, 'b': 2},
{'a': 2, 'b': 4},
{'a': 3, 'b': 6}
]
(Clumper(list_of_dicts)
.mutate(c=lambda d: d['a']+d['b'])
.sort(lambda d: d['c'])
.collect()
)
[{'a': 2, 'b': 4, 'c': 6},
{'a': 7, 'b': 2, 'c': 9},
{'a': 3, 'b': 6, 'c': 9}]
代码解析
Step1
首先使用mutate方法,该方法可以在每条记录中生成新变量。
first-mutate.png)
结算结果仍为Clumper类
Step2
接下来对mutate之后的数据进行排序
then-sort.png)
得到的结果仍为Clumper类。
从上面的小代码案例中,可以看到整套流程像是一个流水线车间,每一行就是一个生成环节,生产环节之间使用.连接起来。
from clumper import Clumper
(Clumper(pokemon)
.keep(lambda d: len(d['type'])==1) #保留type长度为1的字典
.mutate(type=lambda d: d['type'][0], #type值从列表变为字符串
ratio=lambda d: d['attack']/d['hp']) #新建ratio
.select('name', 'type', 'ratio') #字典最后只保留name, type, ratio三个字段
.sort(lambda d: d['ratio'], reverse=True) #按照ratio降序排列
.head(5) #只保留前5个
.collect() #转成列表显示
)
[{'name': 'Diglett', 'type': 'Ground', 'ratio': 5.5},
{'name': 'DeoxysAttack Forme', 'type': 'Psychic', 'ratio': 3.6},
{'name': 'Krabby', 'type': 'Water', 'ratio': 3.5},
{'name': 'DeoxysNormal Forme', 'type': 'Psychic', 'ratio': 3.0},
{'name': 'BanetteMega Banette', 'type': 'Ghost', 'ratio': 2.578125}]
未完待续
精选文章
腾讯课堂 | Python网络爬虫与文本分析
B站视频 | Python自动化办公
语法最简单的微博通用爬虫weibo_crawler
发布一个智能解析算法库
hiResearch 定义自己的科研首页
大邓github汇总, 觉得有用记得star
multistop ~ 多语言停用词库
Jaal 库 轻松绘制动态社交网络关系图
SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站
爬虫实战 | 采集&可视化知乎问题的回答
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh
YelpDaset: 酒店管理类数据集10+G
腾讯课堂 | Python网络爬虫与文本分析
B站视频 | Python自动化办公
语法最简单的微博通用爬虫weibo_crawler
发布一个智能解析算法库
hiResearch 定义自己的科研首页
大邓github汇总, 觉得有用记得star
multistop ~ 多语言停用词库
Jaal 库 轻松绘制动态社交网络关系图
SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站
爬虫实战 | 采集&可视化知乎问题的回答
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh
YelpDaset: 酒店管理类数据集10+G