python数据分析练习——FoodFacts.csv分析

python数据分析练习——FoodFacts.csv分析

导包

import numpy as np
import pandas as pd
import datetime
import matplotlib.pyplot as plt
import seaborn as sns

# 正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
# 自动适应布局
plt.rcParams.update({'figure.autolayout': True})
# 正常显示负号
plt.rcParams['axes.unicode_minus'] = False

获取数据:导入待分析数据:dataset\FoodFacts.csv,并显示显示前10行。

data = pd.read_csv('dataset\FoodFacts.csv')
data.head(10)
codeurlcreatorcreated_tcreated_datetimelast_modified_tlast_modified_datetimeproduct_namegeneric_namequantity...caffeine_100gtaurine_100gph_100gfruits_vegetables_nuts_100gcollagen_meat_protein_ratio_100gcocoa_100gchlorophyl_100gcarbon_footprint_100gnutrition_score_fr_100gnutrition_score_uk_100g
0000000000000012866http://world-en.openfoodfacts.org/product/0000...date-limite-app14470043642015-11-08T17:39:24Z14470043642015-11-08T17:39:24ZPoêlée à la sarladaiseNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
10000000024600http://world-en.openfoodfacts.org/product/0000...date-limite-app14345307042015-06-17T08:45:04Z14345359142015-06-17T10:11:54ZFilet de bœufNaN2.46 kg...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
20000000036252http://world-en.openfoodfacts.org/product/0000...tacinte14222217012015-01-25T21:35:01Z14222218552015-01-25T21:37:35ZLion Peanut x2NaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
30000000039259http://world-en.openfoodfacts.org/product/0000...tacinte14222217732015-01-25T21:36:13Z14222219262015-01-25T21:38:46ZTwix x2NaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
40000000039529http://world-en.openfoodfacts.org/product/0000...teolemon14201470512015-01-01T21:17:31Z14391417402015-08-09T17:35:40ZPack de 2 TwixNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
50000001071894http://world-en.openfoodfacts.org/product/0000...bcatelin14094112522014-08-30T15:07:32Z14391417392015-08-09T17:35:39ZFluteFluteNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
60000005200016http://world-en.openfoodfacts.org/product/0000...sigoise14411866572015-09-02T09:37:37Z14425707522015-09-18T10:05:52Zlentilles vertesNaN1 kg...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
70000007020254http://world-en.openfoodfacts.org/product/0000...teolemon14201501932015-01-01T22:09:53Z14202103732015-01-02T14:52:53ZNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
80000010090206http://world-en.openfoodfacts.org/product/0000...sebleouf13709774312013-06-11T19:03:51Z14450834312015-10-17T12:03:51ZThé de Noël aromatisé orange-cannelleNaN75 g...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
90000020364373http://world-en.openfoodfacts.org/product/0000...openfoodfacts-contributors13939705732014-03-04T22:02:53Z13939707332014-03-04T22:05:33ZZumo de PiñaNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN

10 rows × 159 columns

查看文件大小,会发现文件列数过多,而我们只需要对’countries_en’和 'additives_n’这两列进行分析,因此,请处理数据只剩下这两列即可;然后判断有无缺失值,若有,直接删除缺失值。

data2 = data[['countries_en', 'additives_n']]
data2
countries_enadditives_n
0FranceNaN
1FranceNaN
2FranceNaN
3FranceNaN
4FranceNaN
.........
65498PolandNaN
65499France0.0
65500FranceNaN
65501France0.0
65502ChinaNaN

65503 rows × 2 columns

data2.dropna(axis=0, how='any', inplace=True)
data2
countries_enadditives_n
5United Kingdom0.0
6France0.0
8France0.0
10United Kingdom5.0
11United Kingdom5.0
.........
65480United States4.0
65490France0.0
65494France0.0
65499France0.0
65501France0.0

43616 rows × 2 columns

将所有国家名称转换为小写

data2['countries_en'] = data2['countries_en'].str.lower()
data2
countries_enadditives_n
5united kingdom0.0
6france0.0
8france0.0
10united kingdom5.0
11united kingdom5.0
.........
65480united states4.0
65490france0.0
65494france0.0
65499france0.0
65501france0.0

43616 rows × 2 columns

按国家对additives_n列进行分组,并统计使用添加剂的平均数量,并对统计结果(均值)从大到小排序.

group = data2['additives_n'].groupby(data2['countries_en']).mean().sort_values(ascending=False)
group.head(10).index
Index(['australia,indonesia,united states', 'france,saudi arabia',
       'denmark,france,portugal', 'france,greece,netherlands', 'togo', 'qatar',
       'denmark,france,switzerland', 'france,luxembourg',
       'egypt,united kingdom,united states', 'australia,new zealand'],
      dtype='object', name='countries_en')

对排名前10的数据进行简单的可视化展示(例如,使用matplotlib中的柱状图、折线图或者饼图等任意一种绘图方式进行)

plt.figure(figsize=(10, 6))
plt.pie(group.head(10),labels=group.head(10).index, colors=sns.color_palette('hls',10),
       shadow=True,startangle=90,autopct='%.2f%%')
plt.axis('equal')
plt.legend(loc='upper right')

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泤燃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值