2021 年“泰迪杯”数据分析技能赛 B 题 肥料登记数据分析

2021年“泰迪杯”数据分析技能

B题

肥料登记数据分析赛题*

一、背景
肥料是农业生产中一种重要的生产资料,其生产销售必须遵循《肥料登记管
理办法》,依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府
农业行政主管部门主要负责本行政区域内销售的肥料登记工作,相关数据可从政
府网站上自由下载。
二、目标

  1. 对肥料登记数据进行预处理。
  2. 根据养分的百分比对肥料产品进行细分。
  3. 从省份、日期、生产商、肥料构成等维度对肥料登记数据进行对比分析。
  4. 对非结构化数据进行结构化处理。

三、任务
请根据附件 1~附件 4 中提供的数据,自行选择分析工具完成以下任务,并
撰写报告。
任务 1 数据的预处理
任务 1.1 附件 1 的产品通用名称存在不规范的情况。 请按照复混肥料(掺
混肥料归入这一类)、有机-无机复混肥料、有机肥料和床土调酸剂这 4 种类别
对附件 1 进行规范化处理。请在报告中给出处理思路、过程及必要的结果,同时
将完整的结果保存到文件**“result1_1.xlsx”**中。

import pandas as pd
import numpy as np
import datetime
import re

dfa= pd.read_excel('./附件1.xlsx')
#首先查看有哪些产品通用名称
dfa['产品通用名称'].unique()
#去除换行符和空白符
dfa['产品通用名称'] = dfa['产品通用名称'].str.strip('\n')

strinfo = re.compile(' ')
dfa['产品通用名称'] = dfa['产品通用名称'].apply(lambda x :strinfo.sub("",x))

#将掺混肥料替换为复混肥料
# 将稻苗床土调酸剂替换为床土调酸剂
# 将有机无机   复混肥料替换为有机无机-复混肥料
dfa['产品通用名称'] = dfa['产品通用名称'].replace('掺混肥料','复混肥料')
dfa['产品通用名称'] = dfa['产品通用名称'].replace('稻苗床土调酸剂','床土调酸剂')
dfa['产品通用名称'] = dfa['产品通用名称'].replace('有机无机   复混肥料','有机无机复混肥料')
dfa['产品通用名称'] = dfa['产品通用名称'].replace('有机-无机复混肥料','有机-无机复混肥料')
dfa['产品通用名称'] = dfa['产品通用名称'].replace('有机无机复混肥料','有机-无机复混肥料')

查看处理后的产品通用名称

dfa["产品通用名称"].unique()
time = '2021-3-8'
time_ = '2021-3-17'
dfa.iloc[2919:-1,-1] = pd.to_datetime(time)+datetime.timedelta(365*5)
dfa.iloc[-1,-1] = pd.to_datetime(time_)+datetime.timedelta(365*5)

# 用to_datetime规范化日期格式
dfa['有效期'] = pd.to_datetime(dfa['有效期'])

任务 1.2 计算附件 1 中各肥料产品的氮、磷、钾养分百分比之和,称为总
无机养分百分比。请在报告中给出处理思路、过程及必要的结果,同时将完整的
结果保存到文件**“result1_2.xlsx”**中,结果保留 3 位小数(例如 1.0%,即 0.010)。

dfa['总无极养分百分比'] = (dfa['总氮百分比']+dfa['P2O5百分比']+dfa['K2O百分比'])*100
#保存结果
dfa.to_csv('./result1_2.xlsx',index=False,float_format='%.3f')

任务 2 肥料产品的数据分析
任务 2.1 从附件 2 中筛选出复混肥料的产品,将所有复混肥料按照总无机
养分百分比的取值等距分为 10 组。根据每个产品所在的分组,为其打上分组标
签(标签用 1~10 表示),将完整的结果保存到文件**“result2_1.xlsx**”中。分析复
混肥料产品的分布特点,在报告中绘制产品登记数量的直方图,给出处理思路及
过程,并按登记数量从大到小列出登记数量最大的前 3 个分组及相应的产品登记
数量。

import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
import matplotlib
import seaborn as sns
plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
from pyecharts import options as opts
from pyecharts.charts import Bar,Timeline,Pie
from pyecharts.globals import ThemeType
from sklearn import cluster

dfb= pd.read_excel('./附件2.xlsx')

# 根据条件筛选出 条复混肥料数据
df= dfb[dfb['产品通用名称']=='复混肥料']
print('根据条件筛选出{}条复混肥料数据'.format(len(fh)))

采取od.cut的方法

labels = [i for i in range(1,11)]
df['总无机养分百分比'] = pd.cut(list(fh['总无机养分百分比']),10,labels=labels)

结果为

#保存结果
df.to_excel('./result2/result2_1.xlsx',index=False)

该任务需要分析复混肥料产品的特点:将广西和湖北的名称列出来再统计分析

gx_city = ['南宁','柳州','桂林','梧州','北海','钦州','贺州','河池','百色','来宾','崇左','玉林','防城港','贵港']
gx_num = [i for i in range(len(gx_city))]
hb_city = ["武汉","黄石","襄阳","荆州","宜昌","十堰","孝感","荆门","鄂州","黄冈","咸宁","随州"]
hb_num = [
  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值