本章節(jié)以及后續(xù)章節(jié)的源碼,當(dāng)然也可以從我的github下載昆咽,在源碼中我自己加了一些中文注釋驾凶。
美國(guó)農(nóng)業(yè)部(USDA)制作了一份有關(guān)食物營(yíng)養(yǎng)信息的數(shù)據(jù)庫(kù)牙甫。JSON版如下:
????????每種食物都帶有若干標(biāo)識(shí)性屬性以及兩個(gè)有關(guān)營(yíng)養(yǎng)成分和分量的列表。這種形式的數(shù)據(jù)不是很適合分析工作调违,因此我們需要做一些規(guī)整化以使其具有更好用的形式:
????????db中的每個(gè)條目都是一個(gè)含有某種食物全部數(shù)據(jù)的字典窟哺。nutrients字段是一個(gè)字典列表,其中的每個(gè)字典對(duì)應(yīng)一種營(yíng)養(yǎng)成分:
????????在將字典列表轉(zhuǎn)換為DataFrame時(shí)翰萨,可以只抽取其中的一部分字段脏答。這里糕殉,我們將取出食物的名稱亩鬼、分類、編號(hào)以及制造商等信息:
通過(guò)value_counts阿蝶,可以查看食物類別的分布情況:
????????為了對(duì)全部營(yíng)養(yǎng)數(shù)據(jù)做一些分析雳锋,最簡(jiǎn)單的辦法是將所有食物的營(yíng)養(yǎng)成分整合到一個(gè)大表中。我們分幾個(gè)步驟來(lái)實(shí)現(xiàn)該目的羡洁。首先玷过,將各食物的營(yíng)養(yǎng)成分列表轉(zhuǎn)換為一個(gè)DataFrame,并添加一個(gè)表示編號(hào)的列筑煮,然后將該DataFrame添加到一個(gè)列表中辛蚊。最后通過(guò)concat將這些東西連接起來(lái)就可以了:
這個(gè)DataFrame中無(wú)論如何都會(huì)有一些重復(fù)項(xiàng),所以直接丟棄就可以了:
由于兩個(gè)DataFrame對(duì)象中(info 和 nutrients)都有"group"和"description"真仲,所以為了明確到底誰(shuí)是誰(shuí)袋马,需要對(duì)它們進(jìn)行重命名:
將info跟nutrients合并起來(lái):
根據(jù)食物分類和營(yíng)養(yǎng)類型畫出一張中位值圖:
各營(yíng)養(yǎng)成分最為豐富的食物是什么,這里只給出"Amino Acids"營(yíng)養(yǎng)分組:
快速學(xué)習(xí):
第四節(jié) 數(shù)據(jù)加載秸应、存儲(chǔ)
第七節(jié) 數(shù)據(jù)聚合與分組運(yùn)算
數(shù)據(jù)分析案例--1880-2010年間全美嬰兒姓名的處理
數(shù)據(jù)分析案例--MovieLens 1M數(shù)據(jù)集
數(shù)據(jù)分析案例--USA.gov數(shù)據(jù)