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

news2025/1/20 5:49:39

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

完整代码请私聊 博主

# 一、背景 肥料是农业生产中一种重要的生产资料,其生产销售必须遵循《肥料登记管理办法》,依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主要负责本行政区域内销售的肥料登记工作,相关数据可从政府网站上自由下载。 # 二、目标 1. 对肥料登记数据进行预处理。 2. 根据养分的百分比对肥料产品进行细分。 3. 从省份、日期、生产商、肥料构成等维度对肥料登记数据进行对比分析。 4. 对非结构化数据进行结构化处理。 # 三、任务 请根据附件 1~附件 4 中提供的数据,自行选择分析工具完成以下任务,并撰写报告。 ## 任务 1 数据的预处理 ### 任务 1.1 附件 1 的产品通用名称存在不规范的情况。请按照复混肥料(掺混肥料归入这一类)、有机-无机复混肥料、有机肥料和床土调酸剂这 4 种类别对附件 1 进行规范化处理。请在报告中给出处理思路、过程及必要的结果,同时将完整的结果保存到文件“result1_1.xlsx”。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df1_1 = pd.read_excel('./数据/附件1.xlsx')
df1_1
df1_1.info()
df1_1['产品通用名称'].unique()
set(df1_1["产品通用名称"])
def grade(x):
    if ('复混' in x[:2]) or ('掺混' in x):
        return '复混肥料'
    elif '无机' in x:
        return '有机-无机复混肥料'
    elif '有机肥料' in x:
        return '有机肥料'
    elif '调酸剂' in x:
        return '床土调酸剂'
df1_1['产品通用名称'] = df1_1['产品通用名称'].apply(grade)
df1_1.reset_index(inplace=True,drop=True)
df1_1.to_excel('result1_1.xlsx',index=None)
	序号	企业名称	产品通用名称	产品形态	总氮百分比	P2O5百分比	K2O百分比	含氯情况	有机质百分比	正式登记证号	发证日期	有效期
0	1	安徽中元化肥股份有限公司	复混肥料	颗粒	0.1300	0.1700	0.2000	低氯	0.00	皖农肥(2016)准字4255号	2016-01-08	2021-01
1	2	安徽中元化肥股份有限公司	复混肥料	颗粒	0.1300	0.1700	0.2000	中氯	0.00	皖农肥(2016)准字4256号	2016-01-08	2021-01
2	3	安徽中元化肥股份有限公司	复混肥料	颗粒	0.2000	0.1500	0.1600	低氯	0.00	皖农肥(2016)准字4257号	2016-01-08	2021-01
3	4	安徽中元化肥股份有限公司	复混肥料	颗粒	0.2600	0.1300	0.1200	低氯	0.00	皖农肥(2016)准字4258号	2016-01-08	2021-01
4	5	安徽中元化肥股份有限公司	复混肥料	颗粒	0.2600	0.1300	0.1200	中氯	0.00	皖农肥(2016)准字4259号	2016-01-08	2021-01
...	...	...	...	...	...	...	...	...	...	...	...	...
2920	2921	安徽泰又丰有机肥科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7174号	2021-3-8	52921	2922	滁州市塔山生物有机肥料有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7175号	2021-3-8	52922	2923	利辛县鑫圣农业科技有限责任公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7176号	2021-3-8	52923	2924	利辛县鑫圣农业科技有限责任公司	有机肥料	颗粒	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7177号	2021-3-8	52924	2925	六安亿牛生物科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7178号	2021-3-17	52925 rows × 12 columns

任务 1.2

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

df1_2 = pd.read_excel('./数据/附件1.xlsx')
df1_2.head()
res = df1_2[['总氮百分比','P2O5百分比','K2O百分比']].sum(axis=1)
res = round(res*100,1).astype(str)+'%'
df1_2['总无机养分百分比'] = res
df1_2[['序号','正式登记证号','总无机养分百分比']].to_excel('result1_2.xlsx',index=None)

	序号	企业名称	产品通用名称	产品形态	总氮百分比	P2O5百分比	K2O百分比	含氯情况	有机质百分比	正式登记证号	发证日期	有效期	总无机养分百分比
0	1	安徽中元化肥股份有限公司	复混肥料	颗粒	0.1300	0.1700	0.2000	低氯	0.00	皖农肥(2016)准字4255号	2016-01-08	2021-01	50.0%
1	2	安徽中元化肥股份有限公司	复混肥料	颗粒	0.1300	0.1700	0.2000	中氯	0.00	皖农肥(2016)准字4256号	2016-01-08	2021-01	50.0%
2	3	安徽中元化肥股份有限公司	复混肥料	颗粒	0.2000	0.1500	0.1600	低氯	0.00	皖农肥(2016)准字4257号	2016-01-08	2021-01	51.0%
3	4	安徽中元化肥股份有限公司	复混肥料	颗粒	0.2600	0.1300	0.1200	低氯	0.00	皖农肥(2016)准字4258号	2016-01-08	2021-01	51.0%
4	5	安徽中元化肥股份有限公司	复混肥料	颗粒	0.2600	0.1300	0.1200	中氯	0.00	皖农肥(2016)准字4259号	2016-01-08	2021-01	51.0%
...	...	...	...	...	...	...	...	...	...	...	...	...	...
2920	2921	安徽泰又丰有机肥科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7174号	2021-3-8	55.0%
2921	2922	滁州市塔山生物有机肥料有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7175号	2021-3-8	55.0%
2922	2923	利辛县鑫圣农业科技有限责任公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7176号	2021-3-8	55.0%
2923	2924	利辛县鑫圣农业科技有限责任公司	有机肥料	颗粒	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7177号	2021-3-8	55.0%
2924	2925	六安亿牛生物科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	皖农肥(2021)准字7178号	2021-3-17	55.0%
2925 rows × 13 columns

任务 2 肥料产品的数据分析

任务 2.1

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

df2_1 = pd.read_excel('./数据/附件2.xlsx')
df2_1 = df2_1.loc[df2_1['产品通用名称']=='复混肥料']
df2_1
df2_1['分组标签'] = pd.cut(df2_1['总无机养分百分比'],bins=10,include_lowest=True,labels=list(range(1,11)))
df2_1.to_excel('result2_1.xlsx',index=None)
序号	企业名称	产品通用名称	产品形态	总氮百分比	P2O5百分比	K2O百分比	含氯情况	有机质百分比	正式登记证号	发证日期	有效期	产品商品名称	适用作物	总无机养分百分比	分组标签
1	2	嘉施利(应城)化肥有限公司	复混肥料	粒状	0.17	0.17	0.07	低氯	0.0	鄂农肥(2009)准字0004号	2014-08-15	2019-08	NaN	NaN	0.41	6
2	3	嘉施利(应城)化肥有限公司	复混肥料	粒状	0.20	0.05	0.15	无氯	0.0	鄂农肥(2009)准字0005号	2014-08-15	2019-08	NaN	NaN	0.40	6
3	4	嘉施利(应城)化肥有限公司	复混肥料	粒状	0.26	0.08	0.10	中氯	0.0	鄂农肥(2009)准字0006号	2014-08-15	2019-08	NaN	NaN	0.44	7
4	5	湖北澳特尔化工有限公司	复混肥料	粒状	0.15	0.15	0.15	无氯	0.0	鄂农肥(2009)准字00079号	2014-10-25	2019-10	NaN	NaN	0.45	7
5	6	嘉施利(应城)化肥有限公司	复混肥料	粒状	0.20	0.05	0.11	无氯	0.0	鄂农肥(2009)准字0007号	2014-08-15	2019-08	NaN	NaN	0.36	5
...	...	...	...	...	...	...	...	...	...	...	...	...	...	...	...	...
7597	2214	广西洁源动物无害化处理有限公司	复混肥料	粒状	0.16	0.05	0.09	高氯	0.0	桂农肥(2020)准字3873号	2020-10-09	2025-10	复混肥料	NaN	0.30	5
7598	2215	广西洁源动物无害化处理有限公司	复混肥料	粒状	0.14	0.04	0.09	中氯	0.0	桂农肥(2020)准字3874号	2020-10-09	2025-10	复混肥料	NaN	0.27	4
7604	2221	广西崇左弗恩生物科技有限公司	复混肥料	粒状	0.16	0.08	0.16	无氯	0.0	桂农肥(2020)准字3880号	2020-10-09	2025-10	桔丰	NaN	0.40	6
7609	2226	玉林市绿芬威化肥有限公司	复混肥料	粒状	0.17	0.06	0.07	高氯	0.0	桂农肥(2020)准字3885号	2020-10-09	2025-10	复混肥料	NaN	0.30	5
7610	2227	玉林市绿芬威化肥有限公司	复混肥料	粒状	0.15	0.05	0.05	高氯	0.0	桂农肥(2020)准字3886号	2020-10-09	2025-10	复混肥料	NaN	0.25	4
5954 rows × 16 columns

在这里插入图片描述

任务 2.2

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

df2_2 = pd.read_excel('./数据//附件2.xlsx')
df2_2 = df2_2[df2_2['产品通用名称']=='有机肥料']
df2_2['总无机养分分组'] = pd.cut(df2_2['总无机养分百分比'],bins=10,include_lowest=True,labels=list(range(1,11)))
df2_2['有机质分组'] = pd.cut(df2_2['有机质百分比'],bins=10,include_lowest=True,labels=list(range(1,11)))
df2_2['总无机养分-有机质分组'] = list(zip(df2_2['总无机养分分组'],df2_2['有机质分组']))
df2_2 = df2_2.reset_index(drop=True)
df2_2
df2_2.to_excel('result2_2.xlsx',index=None)
序号	企业名称	产品通用名称	产品形态	总氮百分比	P2O5百分比	K2O百分比	含氯情况	有机质百分比	正式登记证号	发证日期	有效期	产品商品名称	适用作物	总无机养分百分比	总无机养分分组	有机质分组	总无机养分-有机质分组
0	231	湖北中化东方肥料有限公司	有机肥料	粉状	0.0267	0.0267	0.0267	无氯	0.60	鄂农肥(2009)准字0348号	2015-01-20	2020-01	NaN	NaN	0.0801	1	7	(1, 7)
1	320	武汉市沃农肥业有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	鄂农肥(2010)准字0595号	2015-01-20	2020-01	NaN	NaN	0.0501	1	6	(1, 6)
2	425	湖北太阳雨三农科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	鄂农肥(2010)准字0915号	2015/11/10	2020-11	NaN	NaN	0.0501	1	6	(1, 6)
3	474	武汉裕龙生物科技有限责任公司	有机肥料	粒状	0.0167	0.0167	0.0167	无氯	0.45	鄂农肥(2010)准字1116号	2015/11/20	2020-11	NaN	NaN	0.0501	1	6	(1, 6)
4	539	湖北地利奥生物科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	鄂农肥(2011)准字0038号	2016/03/22	2021-03	NaN	NaN	0.0501	1	6	(1, 6)
...	...	...	...	...	...	...	...	...	...	...	...	...	...	...	...	...	...	...
1040	2230	北海浦联生态科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	桂农肥(2020)准字3889号	2020-11-04	2025-11	浦联精制有机肥	NaN	0.0501	1	6	(1, 6)
1041	2232	广西佳旺生物科技有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	桂农肥(2015)准字2257号	2020-11-16	2025-11	精制有机肥	NaN	0.0501	1	6	(1, 6)
1042	2233	广西海源生态农业开发有限公司	有机肥料	粉、粒状	0.0167	0.0167	0.0167	无氯	0.45	桂农肥(2015)准字2304号	2020-11-30	2025-11	精制有机肥	NaN	0.0501	1	6	(1, 6)
1043	2234	广西亿裕发生态肥业有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	桂农肥(2016)准字2591号	2020-12-14	2022-01	莫老爷有机肥	NaN	0.0501	1	6	(1, 6)
1044	2235	广西群星肥业有限公司	有机肥料	粉状	0.0167	0.0167	0.0167	无氯	0.45	桂农肥(2019)准字3446号	2020-12-16	2024-02	精制有机肥	NaN	0.0501	1	6	(1, 6)
1045 rows × 18 columns

在这里插入图片描述

任务 2.3

从附件 2 中筛选出复混肥料的产品,按照氮、磷、钾养分的百分比,使用聚类算法将这些产品分为 4 类。根据聚类结果为每个产品打上聚类标签(标签用 1~4 表示),并将完整的结果保存到文件“result2_3.xlsx”中。请在报告中给出处理思路及过程,根据聚类标签绘制肥料产品的三维散点图和散点图矩阵,并通过绘制聚类结果的雷达图分析每个聚类的特征。

在这里插入图片描述

#散点图矩阵

在这里插入图片描述

cluster = km.cluster_centers_#获取聚类中心
print(cluster.max())#聚类中心中的最大值
0.25918935643564356
雷达图

在这里插入图片描述

任务 3 肥料产品的多维度对比分析

任务 3.1

从文件“result2_1.xlsx”中提取发证日期中的年份,分析比较复混肥料中各组别不同年份产品登记数量的变化趋势。请在报告中给出处理思路及分析过程,使用合适的图表对结果进行可视化。

df3_1 = pd.read_excel('result2_1.xlsx')
df3_1['发证日期'] = pd.to_datetime(df3_1['发证日期'], format="%Y-%m-%d")
df3_1['年份'] = df3_1['发证日期'].dt.year
data = df3_1.pivot_table(index='年份',columns='分组标签',values='序号',aggfunc='count',fill_value=0)
import pyecharts.options as opts
from pyecharts.charts import Line

在这里插入图片描述

任务 3.2

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

df3_2 = pd.read_excel('result2_2.xlsx')
df3_2 = df3_2[df3_2['有效期'] >= '2021-9-30']
df3_2.reset_index(drop=True,inplace=True)
df3_2.to_excel('result3_2.xlsx',index=None)
df3_2[df3_2['正式登记证号'].apply(lambda x:'鄂'in x)]['总无机养分-有机质分组'].value_counts()[:5]
(1, 6)    373
(1, 7)     11
(1, 8)      5
(2, 6)      3
(2, 7)      2
Name: 总无机养分-有机质分组, dtype: int64
df3_2[df3_2['正式登记证号'].apply(lambda x:'桂'in x)]['总无机养分-有机质分组'].value_counts()[:5]
(1, 6)    340
(1, 7)     55
(2, 6)     48
(2, 7)     23
(1, 8)      9
Name: 总无机养分-有机质分组, dtype: int64

任务 3.3

从附件 3 中提取产品登记数量大于 10 的肥料企业,给出这些企业所用到的原料集合(发酵菌剂除外)。以各企业用到的原料作为特征,计算企业之间的杰卡德相似系数矩阵,并将结果(保留4位小数)保存到文件“result3_3.xlsx”中(不提供模板文件,格式见表 1)。请在报告中给出处理思路、过程及相似系数矩阵。
注 集合 𝐴 与 𝐵 的杰卡德相似系数定义为 𝐽(𝐴, 𝐵) =|𝐴∩𝐵|/𝐴∪𝐵| ,其中 |S| 表示集合 𝑆 中元素的个数。
在这里插入图片描述

df3_3 = pd.read_excel('./数据/附件3.xlsx')
df3_3.head()
a = df3_3['企业名称'].value_counts()>10
a = a[a].index
a
Index(['ID1', 'ID2', 'ID3', 'ID5', 'ID4', 'ID6', 'ID7', 'ID12', 'ID10', 'ID9'], dtype='object')


```bash
jiedeka_list=[]
for i in a:
    jiedeka_row = []
    for j in a:
        jiaoji_nums = len(qiye_dict[i].intersection(qiye_dict[j]))
        bingji_nums = len(qiye_dict[i].union(qiye_dict[j]))
        jiedeka = jiaoji_nums/bingji_nums
        jiedeka = '%.4f'%jiedeka
        jiedeka_row.append(jiedeka)
    jiedeka_list.append(jiedeka_row)
data = pd.DataFrame(np.array(jiedeka_list),index=a.values,columns=a.values)
data.to_excel('result3_3.xlsx')
data

ID1	ID2	ID3	ID5	ID4	ID6	ID7	ID12	ID10	ID9
ID1	1.0000	0.2692	0.3000	0.2143	0.3333	0.3000	0.3333	0.2381	0.2273	0.1538
ID2	0.2692	1.0000	0.3500	0.2069	0.3182	0.3500	0.3889	0.2857	0.2727	0.1923
ID3	0.3000	0.3500	1.0000	0.3333	0.4667	0.5385	0.6364	0.4286	0.3125	0.3333
ID5	0.2143	0.2069	0.3333	1.0000	0.3043	0.2727	0.3000	0.2174	0.2083	0.2800
ID4	0.3333	0.3182	0.4667	0.3043	1.0000	0.3750	0.4286	0.2941	0.2778	0.2381
ID6	0.3000	0.3500	0.5385	0.2727	0.3750	1.0000	0.8000	0.4286	0.4000	0.2632
ID7	0.3333	0.3889	0.6364	0.3000	0.4286	0.8000	1.0000	0.5000	0.3571	0.2941
ID12	0.2381	0.2857	0.4286	0.2174	0.2941	0.4286	0.5000	1.0000	0.3125	0.2632
ID10	0.2273	0.2727	0.3125	0.2083	0.2778	0.4000	0.3571	0.3125	1.0000	0.1905
ID9	0.1538	0.1923	0.3333	0.2800	0.2381	0.2632	0.2941	0.2632	0.1905	1.0000

任务 4 肥料产品的多维度对比分析

任务 4.1

设计算法或处理流程,从附件 4 技术指标中提取出氮、磷、钾养分和有机质的百分比,以及肥料含氯的程度。请在报告中给出处理思路及过程,并将结果保存到文件“result4_1.xlsx”中。
注 如果技术指标中只给出总养分百分比(“≥”按照“=”处理)而无明细数据,则氮、磷、钾养分的百分比按照总百分比的 1/3 来计算,结果保留 3 位小数(例如 1.0%,即 0.010)。复混肥料属于无机肥料,它的有机质百分比设定为 0。含氯情况分为“无氯”、“低氯”、“中氯”和“高氯”4 种。如果肥料产品的技术指标中没有给出含氯情况,则视为“无氯”;如果注明“含氯”,则视为“低氯”。

df4_1 = pd.read_excel('./数据/附件4.xlsx')
df4_1.head()
df4_1[['总氮百分比','P205百分比','K20百分比','有机质百分比','含氯的程度']]=np.nan
.............................................................................................
df4_1['总氮百分比'] = df4_1[['产品通用名称', '技术指标']].apply(npk_youji, axis=1).str[0]
df4_1['P2O5百分比'] = df4_1[['产品通用名称', '技术指标']].apply(npk_youji, axis=1).str[1]
df4_1['K2O百分比'] = df4_1[['产品通用名称', '技术指标']].apply(npk_youji, axis=1).str[2]
df4_1['有机质百分比'] = df4_1[['产品通用名称', '技术指标']].apply(npk_youji, axis=1).str[3]
# 保存结果
df4_1.to_excel('result4_1.xlsx')
	序号	产品通用名称	技术指标	原料与占比	总氮百分比	P205百分比	K20百分比	有机质百分比	含氯的程度	P2O5百分比	K2O百分比
0	1	复混肥料	总养分(N+P2O5+K2O)≥35%(14-8-13) 硫酸钾型	尿素 (占15%),高岭土 (占15.5%),硫酸铵 (占28.16%),磷酸一铵 (占16...	0.140	NaN	NaN	0.00	无氯	0.080	0.130
1	2	复混肥料	总养分(N+P2O5+K2O)≥30%(15-6-9) 中氯	尿素 (占15%),高岭土 (占30.23%),氯化铵 (占28%),磷酸一铵 (占12.2...	0.150	NaN	NaN	0.00	中氯	0.060	0.090
2	3	有机肥料	N+P2O5+K2O≥5% ,有机质≥45%	木薯渣(干基) (占84.9%),菌种 (占0.1%),黄豆渣 (占15%)	0.017	NaN	NaN	0.45	无氯	0.017	0.017
3	4	复混肥料	总养分(N+P2O5+K2O)≥43% (10―18―15)含氯(低氯)	尿素 (占15%),高岭土 (占20%),粉状磷酸一铵 (占40%),氯化钾 (占25%)	0.100	NaN	NaN	0.00	低氯	0.180	0.150
4	5	有机肥料	总养分(N+P2O5+K2O)≥5.0% 有机质≥45% 酸碱度(PH) 5.5∽8.5	畜禽粪便 (占50%),菌种 (占2%),桐 麸 (占30%),滤 泥 (占18%)	0.017	NaN	NaN	0.45	无氯	0.017	0.017
...	...	...	...	...	...	...	...	...	...	...	...
195	196	有机-无机复混肥料	有机-无机肥复混肥料(Ⅰ型)6-8-6(含氯 )总含量:N+P2O5+K2O≥20%,有机质...	尿素 (占5%),膨润土 (占25%),氯化铵 (占10%),氯化钾 (占10%),磷酸一铵...	0.060	NaN	NaN	0.20	低氯	0.080	0.060
196	197	有机-无机复混肥料	总养份≥29%(9-7-13) 有机质≥20% 含氯	尿素 (占16.5%),酒糟 (占13%),滤泥 (占33.2%),磷酸一铵 (占15.6%...	0.090	NaN	NaN	0.20	低氯	0.070	0.130
197	198	有机肥料	总养分(N+P2O5+K2O)≥5.0% 有机质≥45% 酸碱度(PH) 5.5∽8.5	畜禽粪便 (占50%),菌种 (占2%),桐 麸 (占30%),滤泥 (占18%)	0.017	NaN	NaN	0.45	无氯	0.017	0.017
198	199	有机肥料	总养分(N+P2O5+K2O)≥5.0%有机质≥45%	牛粪 (占85%),发酵剂 (占0.03%),鸡粪 (占10%), (占0%), (占0%)...	0.017	NaN	NaN	0.45	无氯	0.017	0.017
199	200	有机-无机复混肥料	总养分≥25%(N+P2O5+K2O) 有机质 ≥15% 含氯 II型	尿素 (占26%),高岭土 (占10%),55磷酸一铵 (占12%),氯化钾 (占12%),...	0.083	NaN	NaN	0.15	低氯	0.083	0.083
200 rows × 11 columns

任务 4.2

设计算法或处理流程,从附件 4 原料与百分比中提取各种原料的名称及其百分比。请在报告中给出处理思路及过程,并将结果保存到文件“result4_2.xlsx”中(参见表 2)
在这里插入图片描述

data4_2 = pd.DataFrame(columns=['序号', '原料名称', '百分比'])
# 记录未成功提取的的数据的序号
xuhaos = []
........................................................................................
if xuhaos == []:
    print('全部数据提取成功')
# 保存数据
data4_2.to_excel('result4_2.xlsx')
	序号	原料名称	百分比
0	001	尿素	15%
1	001	高岭土	15.5%
2	001	硫酸铵	28.16%
3	001	磷酸一铵	16.34%
4	001	硫酸钾	25%
...	...	...	...
943	199	鸽子粪	4.97%
944	200	尿素	26%
945	200	高岭土	10%
946	200	氯化钾	12%
947	200	有机肥料	40%
948 rows × 3 columns

四、数据说明

附件 1~附件 4 的数据收集自农业部门官方网站,部分数据细节与实际有差别,仅供比赛使用。
附件 1 为安徽肥料登记数据,附件 2 为广西、湖北肥料登记数据。这两个附件中表的主要字段有企业名称、产品通用名称、正式登记证编号、发证日期、有效时间、产品形态、营养成分百分比、含氯情况等。其中产品通用名称实际上是肥料产品的类型,需要在省级农业行政主管部门登记的肥料有复混肥料(包括掺混肥料)、有机-无机复混肥料、有机肥料和床土调酸剂这 4 类。肥料的营养成分百分比指标,通常标记出属于无机成分的氮、磷、钾的含量,以及有机质的含量。我国规定,氮肥成分以总氮的质量来计算含量,磷肥成分按磷元素的量折算
成五氧化二磷(P2O5)的质量来计算含量,钾肥成分按钾元素的量折算成氧化钾(K2O)的质量来计算含量。注意,肥料正式登记证有效期为 5 年,可以续期,会出现有效期距发证日期大于 5 年的情况。
附件 3 给出了某省登记肥料的产品配方,相比附件 1 和附件 2 增加了关于肥料原料的信息。
附件 4 给出了某省肥料登记数据中营养成分及原料构成的原始数据。字段技术指标以字符串的形式给出了肥料的营养成分的百分比。例如某复混肥料的技术指标字段取值为“N+P2O5+K2O≥20%(7-10-3) 有机质≥20% 含氯”,表示肥料中氮磷钾三大元素的总养分含量不小于 20%;“(7-10-3)”指的是氮磷钾的配比,氮含量为 7%,磷肥成分(折算为 P2O5)含量为 10%,钾肥成分(折算为K2O)含量为 3%;“有机质≥20%”表示肥料中有机质的含量不小于 20%;“含氯”表示肥料中含有氯元素。有机肥料由于不含无机养分或含量较少,有些产品
只在技术指标中标明“总养分≥…%”,没有给出氮、磷、钾 3 大元素的具体含量。字段原料与百分比以字符串的形式给出了肥料的原料构成及质量百分比,例如某有机肥料的原料与百分比字段取值为“糖蜜酒精废液 (占 25%),发酵菌种(占 1%),木糠 (占 25%),滤泥 (占 49%)”,表明了该有机肥料由蜜糖酒精废液、发酵菌种、木糠和滤泥四种原料构成,质量百分比分别是 25%、1%、25%及 49%。
注 本赛题中,不同的正式登记证号代表不同的产品。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#常见错误—空对象错误

System.NullReferenceException:未将对象引用设置到对象的实例 在C#编程中,System.NullReferenceException是一个常见的运行时异常,其错误信息“未将对象引用设置到对象的实例”意味着代码试图访问一个未被初始化或已被设置为null的对象的成…

MATLAB Simulink® - 智能分拣系统

系列文章目录 前言 本示例展示了如何在虚幻引擎 环境中对四种不同形状的标准 PVC 管件实施半结构化智能分拣。本示例使用 Universal Robots UR5e cobot 执行垃圾箱拣选任务,从而成功检测并分类物体。cobot 的末端执行器是一个吸力抓手,它使 cobot 能够拾…

【SpringMVC】应用分层

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:场景引入 二:前后端分离三层架构 1:表现层 2:业务…

【TCP 网络通信(发送端 + 接收端)实例 —— Python】

TCP 网络通信(发送端 接收端)实例 —— Python 1. 引言2. 创建 TCP 服务器(接收端)2.1 代码示例:TCP 服务器2.2 代码解释: 3. 创建 TCP 客户端(发送端)3.1 代码示例:TCP…

在阿里云/Linux环境搭建Gitblit服务

在阿里云/Linux环境搭建Gitblit服务 1. 整体描述2. 前期准备3. 安装步骤3.1 下载gitblit3.2 上传gitblit3.3 解压文件3.4 修改文件配置3.5 启动gitblit3.6 安全组配置 4. 总结 1. 整体描述 前段时间买了一个阿里云服务器,2核2G,3M固定带宽的配置&#x…

定时任务——xxl-job源码解析

摘要 本文深入解析了xxl-job的源码,xxl-job是一个分布式任务调度平台,其核心设计思想是将调度行为抽象成“调度中心”,而任务逻辑则由“执行器”处理,实现调度与任务的解耦。文章详细介绍了调度器和执行器的初始化流程、任务执行…

吉他初学者学习网站搭建系列(9)——如何用coze做一个网站助手

文章目录 背景功能搭建智能体新增工作流效果总结 背景 随着AI大模型的普及,国内也涌现出许多帮助用户更便捷使用大模型的平台。扣子就是其中之一。国内已经有蛮多用户了,我试用了这个平台,来给我的网站搭建一个小助手,效果非常好…

Anaconda 下安装OpenCV 4.10.0

大家也可以使用pip安装。 pip install opencv-python4.10.0 这里使用conda安装 conda install opencv4.10.0 import cv2 print(cv2.__version__)

帝可得-商品管理

商品管理 需求说明 商品管理主要涉及到三个功能模块,业务流程如下: 新增商品类型: 定义商品的不同分类,如饮料、零食、日用品等。新增商品: 添加新的商品信息,包括名称、规格、价格、类型等。设备货道管理: 将商品与售货机的货…

前端知识1html

VScode一些快捷键 Ctrl/——注释 !——生成html框架元素 *n——生成n个标签 直接书写html的名字回车生成对应的标签 常见标签 span&#xff1a; <span style"color: red;">hello</span> <span>demo</span> span实现&#xff1a; 标题…

【后端面试总结】tcp为什么要设置TIME_WAIT

设置TIME_WAIT的原因 相信大家对tcp的三次握手和四次挥手的过程已经非常熟悉了&#xff0c;但是对于四次挥手来说&#xff0c;有个问题一直困扰着我&#xff0c;那就是为什么在server端发送LAST_ACK之后&#xff0c;还要等待TIME_WAIT时间呢&#xff1f;原因有二&#xff1a; …

vue中使用socket.io统计在线用户

目录 一、引入相关模块 二、store/modules 中封装socketio 三、后端代码(nodejs) 一、引入相关模块 main.js 中参考以下代码 ,另外socketio的使用在查阅其它相关文章时有出入,还是尽量以官方文档为准 import VueSocketIO from vue-socket.io import SocketIO from socket.io-…

Redis的五种数据类型(Set、Zset)

目录 1. Set 集合1.1 Set介绍1.2 常见命令1.2.1 SADD命令1.2.2 SMEMBERS命令1.2.3 SISMEMBER命令1.2.4 SCARD命令1.2.5 SPOP命令1.2.6 SMOVE命令1.2.7 SREM命令 1.3 集合间操作1.3.1 SINTER命令1.3.2 SINTERSTORE命令1.3.3 SUNION命令1.3.4 SUNIONSTORE命令1.3.5 SDIFF命令1.3.…

【CSS in Depth 2 精译_067】11.2 颜色的定义(中):CSS 中的色域与色彩空间

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间 ✔️11.2.2 深入理解颜色表示法 文…

MVC基础——市场管理系统(一)

文章目录 项目地址一、创建项目结构1.1 创建程序以及Controller1.2 创建View1.3 创建Models层,并且在Edit页面显示1.4 创建Layou模板页面1.5 创建静态文件css中间件二、Categories的CRUD2.1 使用静态仓库存储数据2.2 将Categorie的列表显示在页面中(List)2.3 创建_ViewImport.…

[241206] X-CMD 发布 v0.4.15:env 升级,mirror 支持华为/腾讯 npm 镜像,pb-wayland 剪贴板

目录 X-CMD 发布 v0.4.15&#x1f4c3;Changelog&#x1f4e6; env|pkg&#x1fa9e; mirror&#x1f4d1; pb&#x1f3a8; theme|starship|ohmyposh&#x1f916; chat&#x1f4dd; man✅ 升级指南 X-CMD 发布 v0.4.15 &#x1f4c3;Changelog &#x1f4e6; env|pkg 新增…

# 深入浅出 快速认识JAVA常用数据结构【栈, 队列, 链表, 数组】

快速认识JAVA常用数据结构【栈, 队列, 链表】 前言 什么是数据结构 一种用来存储和组织数据的方法&#xff0c;描述了数据之间的关系和操作方式。通过合理选择和使用数据结构&#xff0c;可以大幅提高程序的运行效率、存储效率以及代码可维护性。 数据结构的重要性 数据结构…

fastadmin 后台插件制作方法

目录 一&#xff1a;开发流程 二&#xff1a;开发过程 &#xff08;一&#xff09;&#xff1a;后台功能开发 &#xff08;二&#xff09;&#xff1a;功能打包到插件目录 &#xff08;三&#xff09;&#xff1a;打包插件 &#xff08;四&#xff09;&#xff1a;安装插件…

使用Dapper创建一个简单的查询

1.先在NuGet上下载Dapper包 2.创建对应的model 代码如下&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 数据显示 {public class User{public int UserId { get; set; }public…

雨晨 2610(2)0.2510 Windows 11 24H2 Iot 企业版 LTSC 2024 极简 2in1

文件: 雨晨 2610(2)0.2510 Windows 11 24H2 Iot 企业版 LTSC 2024 极简 2in1 install.esd 索引: 1 名称: Windows 11 IoT 企业版 LTSC 极简 26100.2510 描述: Windows 11 IoT 企业版 LTSC 极简 26100.2510 By YCDISM RTM 2025 24-12-07 大小: 8,176,452,990 个字节 索引: 2 …