美文网首页《利用Python进行数据分析》 第二版
《利用Python进行数据分析》 14.4 美国农业部食品数据库

《利用Python进行数据分析》 14.4 美国农业部食品数据库

作者: CCC考研 | 来源:发表于2018-12-31 11:10 被阅读26次

第十四章 数据分析示例

:本章示例数据集可在附带的GitHub仓库(http://github.com/wesm/pydata-book)中找到


14.4 美国农业部食品数据库

        美国农业部(US Department of Agriculture , USDA)提供了食物营养信息数据库。程序员Ashley Williams以JSON格式提供了这个数据库的一个版本。记录如下所示:

{

  "id": 21441,

  "description": "KENTUCKY FRIED CHICKEN, Fried Chicken, EXTRA CRISPY,

Wing, meat and skin with breading",

  "tags": ["KFC"],

  "manufacturer": "Kentucky Fried Chicken",

  "group": "Fast Foods",

  "portions": [

    {

      "amount": 1,

      "unit": "wing, with skin",

      "grams": 68.0

},  .

  ],

  "nutrients": [

    {

      "value": 20.8,

      "units": "g",

      "description": "Protein",

      "group": "Composition"

    },

    ...

  ]

}

       每种食物都有一些识别属性以及两份营养元素和营养比例的列表。这种形式的数据不适合分析,所以我们需要做一些工作来将数据转换成更好的形式。

        从链接下载并提取数据后,你可以使用你选择的任何JSON库将其加载到Python中。或使用内置的Python json模块

1.载入,查看数据

      db中的每个条目都是一个包含单个食物所有数据的词典。'nutrients’字段是一个字典的列表,每个营养元素对应一个字典(见图14-1)

图14-1:载入、查看数据

2.将字典的列表转换为DataFrame时,我们可以指定一个需要提取的字段列表。这里将提取食物名称、分类、ID和制造商(见图14-2)

图14-2:转换、提取

3.通过value_counts查看食物组的分布情况(见图14-3)

图14-3:通过value_counts查看食物组的分布情况

4.对所有营养元素数据进行一些分析,将每种食物的营养元素组装成一张大表。

4.1 将食物营养元素的每个列表转换为DataFrame,为食物添加一列id,然后将DataFrame附加到列表中。然后,这些DataFrame可以通过concat连接在一起(见图14-4)

图14-4:nutrients

4.2 DataFrame中有重复的东西,所以删除重复值更好(见图14-5)

图14-5去除重复值

4.3’group’和’description’都是在DataFrame对象中的,我们可以明确地重命名(见图14-6)

图14-6:重命名

4.4将info与nutrients合并(见图14-7)

图14-7:数据合并

4.5 根据食物组和营养类型制作一个中位数图(见图14-8)

图14-8:按营养组的中位数锌值中位数图

5.查看食物在每个营养元素下有最密集的营养(见图14-9、14-10)

图14-9:’Amino Acids'(氨基酸)营养组排名 图14-10:最密集营养食物

相关文章

网友评论

    本文标题:《利用Python进行数据分析》 14.4 美国农业部食品数据库

    本文链接:https://www.haomeiwen.com/subject/yjovkqtx.html