Python应用实战-Clumper | dplyr式的Python数据操作包
生活随笔
收集整理的這篇文章主要介紹了
Python应用实战-Clumper | dplyr式的Python数据操作包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Clumper可以用來處理嵌套樣式的json數據結構。
安裝
!pip3?install?clumper為了展示Clumper如何工作,我準備了pokemon.json, 由列表組成(該列表由多個字典組成),下面是pokemon.json部分內容
import?jsonwith?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?Clumperlist_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应用实战-Clumper | dplyr式的Python数据操作包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据挖掘应用实战-一文教你如何全面分析股
- 下一篇: Python应用实战-用Python爬取