資料分析案例--USDA食品資料庫

weixin_34320159發表於2018-10-10

本章節以及後續章節的原始碼,當然也可以從我的github下載,在原始碼中我自己加了一些中文註釋。

美國農業部(USDA)製作了一份有關食物營養資訊的資料庫。JSON版如下:

10053166-00e86fd98d90bad1.png

        每種食物都帶有若干標識性屬性以及兩個有關營養成分和分量的列表。這種形式的資料不是很適合分析工作,因此我們需要做一些規整化以使其具有更好用的形式:

10053166-71a9472b63f75492.png

        db中的每個條目都是一個含有某種食物全部資料的字典。nutrients欄位是一個字典列表,其中的每個字典對應一種營養成分:

10053166-9d015791212e8be0.png

        在將字典列表轉換為DataFrame時,可以只抽取其中的一部分欄位。這裡,我們將取出食物的名稱、分類、編號以及製造商等資訊:

10053166-f44673a76f8a5f31.png

通過value_counts,可以檢視食物類別的分佈情況:

10053166-e51c8fffaab2c42a.png

        為了對全部營養資料做一些分析,最簡單的辦法是將所有食物的營養成分整合到一個大表中。我們分幾個步驟來實現該目的。首先,將各食物的營養成分列表轉換為一個DataFrame,並新增一個表示編號的列,然後將該DataFrame新增到一個列表中。最後通過concat將這些東西連線起來就可以了:

10053166-dfbb9721e86640d4.png
10053166-62ab9362218aea0e.png

這個DataFrame中無論如何都會有一些重複項,所以直接丟棄就可以了:

10053166-e0bb6ffb63fb8c0c.png

由於兩個DataFrame物件中(info 和 nutrients)都有"group"和"description",所以為了明確到底誰是誰,需要對它們進行重新命名:

10053166-59e7d7b6ff991f55.png

將info跟nutrients合併起來:

10053166-3b7b8b5acb650f36.png
10053166-6614544cd32c0e1a.png

根據食物分類和營養型別畫出一張中位值圖:

10053166-94b75abdfd2a03bb.png
10053166-4ab1a5b53c17cbe9.png
根據營養分類得出的鋅中位值

各營養成分最為豐富的食物是什麼,這裡只給出"Amino Acids"營養分組:

10053166-e17dc1b31c331c8b.png

快速學習:

第一節 NumPy基礎(一)

第二節 NumPy基礎(二)

第三節 Pandas入門基礎

第四節 資料載入、儲存

第五節 資料清洗

第六節 資料合併、重塑

第七節 資料聚合與分組運算

第八節 資料視覺化

第九節 pandas高階應用

第十節 時間序列

第十一節 Python建模庫

資料分析案例--1880-2010年間全美嬰兒姓名的處理

資料分析案例--MovieLens 1M資料集

資料分析案例--USA.gov資料

資料分析案例--2012聯邦選舉委員會資料庫

資料分析案例--USDA食品資料庫

相關文章