数据分析

全球食品数据分析

项目参考:https://www.kaggle.com/bhouwens/d/openfoodfacts/world-food-facts/how-much-sugar-do-we-eat/discussion

# -*- coding : utf-8 -*-

# 处理zip压缩文件
import zipfile
import os
import pandas as pd import matplotlib.pyplot as plt def unzip(zip_filepath, dest_path): """ 解压zip文件 """ with zipfile.ZipFile(zip_filepath) as zf: zf.extractall(path=dest_path) def get_dataset_filename(zip_filepath): """ 获取数据集文件名 """ with zipfile.ZipFile(zip_filepath) as zf: return zf.namelist()[0] def run_main(): """ 主函数 """ # 声明变量 dataset_path = './data' # 数据集路径 zip_filename = 'open-food-facts.zip' # zip文件名 zip_filepath = os.path.join(dataset_path, zip_filename) # zip文件路径 dataset_filename = get_dataset_filename(zip_filepath) # 数据集文件名(在zip中) dataset_filepath = os.path.join(dataset_path, dataset_filename) # 数据集文件路径 print('解压zip...', end='') unzip(zip_filepath, dataset_path) print('完成.') # 读取数据 data = pd.read_csv(dataset_filepath, usecols=['countries_en', 'additives_n']) # 分析各国家食物中的食品添加剂种类个数 # 1. 数据清理 # 去除缺失数据 data = data.dropna() # 或者data.dropna(inplace=True) # 将国家名称转换为小写 # 课后练习:经过观察发现'countries_en'中的数值不是单独的国家名称, # 有的是多个国家名称用逗号隔开,如 Albania,Belgium,France,Germany,Italy,Netherlands,Spain # 正确的统计应该是将这些值拆开成多个行记录,然后进行分组统计 data['countries_en'] = data['countries_en'].str.lower() # 2. 数据分组统计 country_additives = data['additives_n'].groupby(data['countries_en']).mean() # 3. 按值从大到小排序 result = country_additives.sort_values(ascending=False) # 4. pandas可视化top10 result.iloc[:10].plot.bar() plt.show() # 5. 保存处理结果 result.to_csv('./country_additives.csv') # 删除解压数据,清理空间 if os.path.exists(dataset_filepath): os.remove(dataset_filepath) if __name__ == '__main__': run_main()

转载于:https://www.cnblogs.com/alexzhang92/p/9794049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值