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
pd.set_option("max_columns",None) #显示所有列
pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("data/附件1.xlsx")
print(df)
df["产品通用名称"].replace(to_replace=".*有机.*无机.*复混肥料",value="有机-无机复混肥料",regex=True,inplace=True)
df["产品通用名称"].replace(to_replace="稻苗床土调酸剂",value="床土调酸剂",regex=True,inplace=True)
df["产品通用名称"].replace(to_replace=".*掺混肥料.*",value="复混肥料",regex=True,inplace=True)
df["产品通用名称"]=df["产品通用名称"].map(lambda a:"有机肥料" if a.__contains__("有机肥料") else a)
df.to_excel("data/result1_1.xlsx",index=True)#写入excel表

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

df["总无机养分百分比"]=df[["总氮百分比","P2O5百分比","K2O百分比"]].apply(lambda a:round(a[0]+a[1]+a[2],3),axis=1)
df.to_excel("result1_2.xlsx",index=True)#写入excel表

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

import pandas as pd
import numpy as nppd.set_option("max_columns",None) #显示所有列
pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("data/附件2.xlsx")
# print(df)
df=df[df["产品通用名称"]=="复混肥料"].copy()
data=df["总无机养分百分比"]
bins=np.linspace(df["总无机养分百分比"].min(),df["总无机养分百分比"].max(),11)
df["组"]=pd.cut(data,bins,include_lowest=True,labels=[1,2,3,4,5,6,7,8,9,10])
df.to_excel("result2_1.xlsx",index=True)#写入excel表

任务 2.2 从附件 2 中筛选出有机肥料的产品,将产品按照总无机养分百分
比和有机质百分比分别等距分为 10 组,并为每个产品打上分组标签 (1,1), (1,2),
⋯, (10,10),将完整的结果保存到文件“result2_2.xlsx”中。请在报告中给出处理
思路及过程,并根据分组情况绘制有机肥料产品的分布热力图,其中横轴代表总
无机养分分组,纵轴代表有机质分组。在此基础上,分析有机肥料产品的分布特
点,并按登记数量从大到小列出登记数量最大的前 3 个分组及相应的产品登记数
量。
注意:此任务图标未显示!

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("data/附件2.xlsx")
# print(df)
# df=df[df["产品通用名称"]=="复混肥料"].copy()
data=df["总无机养分百分比"]
bins=np.linspace(df["总无机养分百分比"].min(),df["总无机养分百分比"].max(),11)
df["组"]=pd.cut(data,bins,include_lowest=True,labels=[1,2,3,4,5,6,7,8,9,10])
# df.to_excel("result1_2.xlsx",index=True)#写入excel表
df1=df[df["产品通用名称"]=="复混肥料"].copy()
bins=np.linspace(df1["总无机养分百分比"].min(),df1["总无机养分百分比"].max(),11)
#每个小组的标签
label=list(range(1,11))
df["label1"]=pd.cut(df1["总无机养分百分比"],bins,include_lowest=True,labels=label)
#按有机质百分比的取值进行分组
bins1=np.linspace(df1["有机质百分比"].min(),df1["有机质百分比"].max(),11)
df["label2"]=pd.cut(df1["有机质百分比"],bins1,include_lowest=True,labels=label)
df["label"]=df[["label1","label2"]].apply(lambda a:(a[0],a[1]),axis=1)
# df.to_excel("result2_2.xlsx",index=True)#写入excel表
c=df["label1"].value_counts().head(3)x = np.random.rand(100).reshape(10, 10)
plt.xticks(df["组"])
plt.yticks(c)
plt.imshow(x, cmap=plt.cm.hot, vmin=0, vmax=1)
plt.title('color-fast')
plt.colorbar()
plt.show()

任务 2.3 从附件 2 中筛选出复混肥料的产品,按照氮、磷、钾养分的百分
比,使用聚类算法将这些产品分为 4 类。根据聚类结果为每个产品打上聚类标签
(标签用 1~4 表示),并将完整的结果保存到文件“result2_3.xlsx”中。请在报
告中给出处理思路及过程,根据聚类标签绘制肥料产品的三维散点图和散点图矩
阵,并通过绘制聚类结果的雷达图分析每个聚类的特征。
任务 3 肥料产品的多维度对比分析
任务 3.1 从文件“result2_1.xlsx”中提取发证日期中的年份,分析比较复混
肥料中各组别不同年份产品登记数量的变化趋势。请在报告中给出处理思路及分
析过程,使用合适的图表对结果进行可视化。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.family"]="FangSong"
pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("result2_1.xlsx")
print(df)
df["发证年份"]=df["发证日期"].str[:4]
shu=df.groupby(["label","发证年份"]).count()["序号"].unstack()
# print(df)
plt.plot(shu.columns,shu.loc[1],label="第一组")
plt.plot(shu.columns,shu.loc[4],label="第四组")
plt.plot(shu.columns,shu.loc[5],label="第五组")
plt.plot(shu.columns,shu.loc[6],label="第六组")
plt.plot(shu.columns,shu.loc[7],label="第七组")
plt.plot(shu.columns,shu.loc[8],label="第八组")
plt.plot(shu.columns,shu.loc[9],label="第九组")
plt.plot(shu.columns,shu.loc[10],label="第十组")
plt.legend()
plt.show()

结果:
在这里插入图片描述
任务 3.2 从文件“result2_2.xlsx”中提取 2021 年 9 月 30 日仍有效的有机
肥料产品,将完整的结果保存到文件“result3_2.xlsx”中。从有效产品中分别筛
选出广西和湖北(根据正式登记证号区分)产品登记数量在前 5 的组别,分析两
个省份上述组别的分布差异。请在报告中给出处理过程及分析结果。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.family"]="FangSong"
pd.set_option("max_columns",None) #显示所有列
# pd.set_option("max_rows",None) #显示所有行
df=pd.read_excel("result2_2.xlsx")
print(df)
df["有效期_new"]=df["有效期"].str[:7]
# print(df)
data=df[df["有效期_new"] >= "2021-10"].copy()
#数据显示有问题,需要删除这几条数据
data.drop(index=data[data["有效期_new"].str.len()==6].index,inplace=True)
print(data)
# data.to_excel("result3_2.xlsx",index=True)#写入excel表
print(data[data["正式登记证号"].str[0] == '桂']["label"].value_counts())
print(data[data["正式登记证号"].str[0] == '鄂']["label"].value_counts())

显示错误所要删除的数据:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49159.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020年“泰迪杯”数据分析职业技能大赛A 题优秀报告:教育平台的线上课程智能推荐策略

摘要 近年来,随着互联网与通信技术的高速发展,学习资源共享与建设呈现出新的发展趋势,多样化的线上教育平台如雨后春笋般争相涌入大众视野。尤其是在今年年初,受新冠肺炎疫情的冲击下,学生返校进行线下授课收到严重阻…

25岁,本科学历,待业,如何成为优秀的数据分析师,值得关注!

25岁,本科学历,待业,如何成为优秀的数据分析师,值得关注! 你是在工作几年后确定自己的职业方向的呢?还是一直都是处于迷茫,随波逐流的状态?都说谁的青春不迷茫,但时间是最…

根据成绩预测大学生能否被高校录取

github源码和数据下载 1、首先,导入库,并且读取数据集。原来数据集是 .txt 结尾的。 由于原始数据中并没有给出每一列的列的名字,所以,我们自己加一个 “Exam 1”、"“Exam 2”、“Admitted”,我们最好列举前…

【超详细】5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果

题目 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说&am…

马上高考了,我用Python分析出了10年内高考最难的年份

网络上关于哪年高考难度最大的争议从未中断: 于是我决定用python对2010年至2020年的高考数据进行分析,多角度分析得出全国卷最难的年份。 以某高考大省理科成绩为例,我从网络上爬取了从2010年至2020年之间的理科成绩数据,存入csv文…

活动星投票最美空姐网络评选微信的投票方式线上免费投票

如何进行“最美空姐”的投票活动_投票小程序投票_投票助力方式 大家在选择投票小程序之前,可以先梳理一下自己的投票评选活动是哪种类型,目前有匿名投票、图文投票、视频投票、赛事征集投票等。 我们现在要以“最美空姐”为主题进行一次投票活动&#xf…

记第一次Python数据分析练习——2018年“泰迪杯”数据分析职业技能大赛B题(2021/5/20)

文章目的 本人目前是应用统计专业大二(2021/5/20)的本科生,上学期上过Python课,但说实话讲的不深,过了一个学期也基本上忘光了。 最近深刻地觉得计算机专业真是好啊,以后我也要当程序员.JPG ,最近开始和老板参加点小…

【意料之中】北大 “韦神”斩获100万奖金

来源:达摩院,编辑:nhyilin 仅用于学术分享,版权属于原作者 前一段时间,韦神就因为一段采访火了。这次韦神又入了达摩院奖杯名单中,不得不说实力真的强。 10月14日,2021达摩院青橙奖公布获奖名单…

《绝地求生》玩家排名预测(2万5千字~大型综合实战)

《绝地求生》玩家排名预测 1. 项目背景2. 数据集介绍3. 项目评估方式3.1 评估方式3.2 MAE(Mean Absolute Error)介绍 4. 项目实现(数据分析RFlightGBM)4.1 获取数据、基本数据信息查看4.2 数据基本处理4.2.1 数据缺失值处理4.2.2 特征数据规范化处理4.2.…

2019年‘泰迪杯’数据分析职业技能大赛A题——个人代码分享

目录 题目 任务 1 数据预处理与统计 任务 2 数据分析与可视化 代码展示 任务一 任务二 题目 任务 1 数据预处理与统计 任务 1.1 对数据作必要的预处理,在报告中列出处理步骤,将处理后的结 国保存为“task1_1.csv”。 任务 1.2 统计每个大类商品…

2020泰迪杯数据分析技能赛B题-新冠疫情数据分析

任务 1 数据的基本处理 任务 1.1 根据附件 1“城市疫情”中的数据统计各城市自首次通报确诊病 例后至 6 月 30 日的每日累计确诊人数、累计治愈人数和累计死亡人数,将结果 保存为“task1_1.csv”,第一行为字段名,按城市、日期、累计确诊人数…

【论文阅读】提升的自动作文评分通过Prompt预测和匹配

摘要 自动作文评分的目标时自动得评估文章的质量。它是自然语言处理领域中主要的教育应用之一。近来,预训练的技术被用于提升下游任务的性能表现。但是,通过预训练的编码器获取更好的特征,比如说prompts,是很重要的但是并没有被完…

数据分析师是青春饭吗?年龄影响很大吗?

数据分析师是青春饭吗?企业需要经验丰富的数据分析师,数据分析师是不是青春饭,反而是越老越吃香,做数据分析不在于年龄,年龄相对你的经验和技能、适应性、还有学习能力并不重要,数据分析工作并不是一蹴而就…

下一个韦神?广西桂林14岁初中生保送清华丘班,明年本硕博连读!

【导读】最近,初三学生官子钦和高一学生周睿哲被清华丘成桐数学领军计划录取,网友们围观后深深震撼:这就是天才。 14岁天才少年又一次震撼了网友! 近日,清华大学丘成桐领军人才培养计划2023年第一批次入围认定结果公…

如何通过tushare获取数据并添加进度条,写入到本地Excel文件

tushare官网地址:Tushare数据 欢迎大家注册体验 安装tushare库 在命令提示符或终端中输入以下命令,可使用pip安装tushare库: pip install tushare 获取API token 在使用tushare库之前,需要先获取API token。在tushare官网注册…

U8如何修改单位名称和账套名称

1、修改单位名称和账套名称时需要使用系统管理员账号登录,系统管理员账号为1 2、登录之后点击系统管理-单位信息 3、找到需要修改的单位,双击即可修改 4、在弹出的弹窗中修改单位名称然后点击确定即可 5、账套名称的修改需点击系统管理-单位账套 6、…

悟空crm二次开发 新增人力资源HRM招聘需求、简历管理、公文管理、回款统计、回款管理、回款计划

悟空crm二次开发 新增人力资源HRM招聘需求、简历管理、公文管理、回款统计、回款管理、回款计划 public function createTeamData($param) {if (!is_array($param[user_id])) {$param[user_id] [intval($param[user_id])];}if (!is_array($param[types_id])) {$param[types_id…

【U8+】用友U8+自动审核自动生成的其他出入库单据

【问题需求】 用友U8中,客户希望调拨单、组装拆卸单、盘点单审核后,自动审核对应的其他出入库单。 【解决方法】 针对账套库执行,查询语句: select * from AccInformation where cSysID ST and ccaption like %自动审核%查询后…

SAP_过账提示科目要求一个成本会计分配

问题点: 解决方案: 在ECC系统,可通过KA02-更改成本要素,在缺省科目分配中设置默认的成本中心或内部订单 后台-控制-成本要素会计-主数据-成本要素-创建成本要素 在S4/HANA系统中,由于成本要素会计功能的变更&#xf…

【分享】用友U8无需API开发连接表单系统、CRM系统、数据库等第三方应用

用友U8用户使用场景: 每当用友U8有存货修改时,需要仓库管理员查询存货档案详情,然后在钉钉宜搭上查询对应货品详情并进行修改,确保两个系统的信息统一,便于销售人员调整营销策略。 但整个流程耗费一定的时间&#xff0…