数据分析实例 USDA 数据

观察,检验基本的数据。并将USDA的数据整合到一张大表中,方便后面的切块,聚合,图形化等工作

1. 观察并检验数据, 数据集一般都很多大,我们要先观察和检验一小部分数据,总结规律

db[0].keys()  // 查看输入的json的所有keys
db[0]['nutrients'][0]  // 查看第一条数据的nutrients字段的第一个值
pd.DataFrame(db[0]['nutrients'])[:7] //查看第一条数据的nutrients字段的前7个值

2. 将数据读入

  • 入读食品数据 nutrients 是一个list类型,需要单独处理,这里要形成一个food的DataFrame,所有挑选有效的数据读入进来
    info_keys = ["description", "group", "id", "manufacturer"]
    info = pd.DataFrame(db, columns=info_keys)
  • 读入nutrients数据,由于每个food的nutrients都是一个列表,所以我们需要一个大表来存放所有的nutrients数据,而id则是food的id(用来后面作merge用)
nutrients = []
for rec in db:
    fnuts = pd.DataFrame(rec['nutrients'])
    fnuts['id'] = rec['id']
    nutrients.append(fnuts)
    nutrients = pd.concat(nutrients, ignore_index=True) // 将所有创建的DataFrame concat到一起生成一个大的DataFrame

这里要注意去重

nutrients = nutrients.drop_duplicates()

3 将数据合并

合并之前要重命名每个DataFrame的列名,因为之前有重复列名

col_mapping = {
'description': 'food',
'group': 'fgroup'
}
info = info.rename(columns=col_mapping, copy=False)

合并

ndata = pd.merge(nutrients, info, on='id', how='outer')

最终ndata就是一张我们可以后面作操作的大表了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容