当前位置: 首页 > news >正文

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

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_numsjiedeka = '%.4f'%jiedekajiedeka_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%。
注 本赛题中,不同的正式登记证号代表不同的产品。

相关文章:

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

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析 完整代码请私聊 博主 一、背景 肥料是农业生产中一种重要的生产资料,其生产销售必须遵循《肥料登记管理办法》,依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主…...

体验AI直播:感受科技的魅力

​ 在当今这个科技飞速发展的时代,各种创新技术层出不穷,不断刷新着我们的认知和体验。其中,无人直播作为一种新兴的直播形式,正以其独特的魅力吸引着人们的目光。当我们真正去体验无人直播时,才能更深刻地感受到科技…...

NLP-中文分词

中文分词 1、中文分词研究背景及意义 和大部分西方语言不同,书面汉语的词语之间没有明显的空格标记,句子是以字串的形式出现。因此对中文进行处理的第一步就是进行自动分词,即将字串转变成词串。 比如“中国建筑业呈现新格局”分词后的词串…...

oracle 架构详解

Oracle 数据库是一个复杂且强大的关系型数据库管理系统(RDBMS),广泛应用于企业级应用中。了解 Oracle 的架构对于数据库管理员(DBA)、开发人员和架构师来说至关重要。以下是 Oracle 数据库架构的详细解析,涵…...

东方资产管理校招笔试测评题型题目深入解读

东方资管作为四大资产AMC公司之一,其薪资待遇还是不错的,现在为数不多还可以投递简历的金融央企。东方资产管理校招笔试一般在简历投递截止后的周末,总部和子公司、分公司需要分别做笔试。 东方资管笔试大概2h,线上双机位&#x…...

PDF处理的创新工具:福昕低代码平台尝鲜实现PDF2word功能

在当今数字化时代,PDF文件的处理和管理变得越来越重要。福昕低代码平台是新发布的一款创新的工具,旨在简化PDF处理和管理的流程。通过这个平台,用户可以通过简单的拖拽界面上的按钮,轻松完成对Cloud API的调用工作流,而…...

springboot系列--拦截器加载原理

一、拦截器加载原理 拦截器是在容器启动时,就创建并加载好,此时并未放入拦截器链中,只是放在一个拦截器集合当中,当一个请求进来之后,会通过匹配路径,查看是否有命中集合中的拦截器的拦截路径,如…...

当Nginx所在服务器的磁盘空间满了,会有什么影响及如何避免这种问题

大家好,我是G探险者! 最近遇到一个问题是,nginx所在服务器磁盘满了,导致前端页面上的一个文件上传功能不好使了,搞得我排查半天,找不见原因,最后发现是nginx的磁盘满了导致,清理了里…...

光猫开DMZ教程

本教程以移动光猫未例,具体操作以实际光猫为准 1、登录移动光猫管理后台 打开浏览器,在浏览器地址栏输入移动光猫登录管理地址192.168.1.1或者tplogin.cn 按“回车键”打开登录页面,然后输入路由器管理密码登录。 移动光猫登录页面 超级密…...

WireShark速成

1.WireShark安装 官网: Wireshark Go Deep Kali Linux系统自带WireShark工具。 2.WireShark介绍 WireShark是一个网络包分析工具,该工具主要用于捕获网络数据包,并自动解析数据包,为用户显示数据包的详情信息,供…...

BFS入门

目录 定义二叉树层次遍历电梯问题倒可乐BFS基本思想算法 四方访问 定义 BFS 通常是指广度优先搜索(Breadth - First Search),它是一种图形数据结构的遍历算法。从给定的起始顶点开始,首先访问起始顶点的所有邻接顶点,然…...

ElementUI:el-tabs 切换之前判断是否满足条件

<div class"table-card"><div class"card-steps-class"><el-tabsv-model"activeTabsIndex":before-leave"beforeHandleTabsClick"><el-tab-pane name"1" label"基础设置"><span slot&…...

mid360使用cartorapher进行3d建图导航

1. 添加urdf配置文件&#xff1a; 添加IMU配置关节点和laser关节点 <!-- imu livox --> <joint name"livox_frame_joint" type"fixed"> <parent link"base_link" /> <child link"livox_frame" /> <o…...

【CSS in Depth 2 精译_073】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(中):对 CSS 行高的深入思考

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 12 章 CSS 排版与间距】 ✔️ 12.1 间距设置 12.1.1 使用 em 还是 px12.1.2 对行高的深入思考 ✔️12.1.3 行内元素的间距设置 文章目录 12.1.2 对行高的深入思考…...

JAVA设计模式-观察者模式

概述&#xff1a; 观察者模式通常由两个对象组成&#xff1a;观察者和被观察者。当被观察者状态发生改变时&#xff0c;它会通知所有的观察者对象&#xff0c;使他们能够及时做出响应&#xff0c;所以也被称作“发布-订阅模式”。 特点&#xff1a; 优点&#xff1a; 解耦且可…...

Java调用SSE流式接口,并流式返回给前端实现打字输出效果

目录 1.SSE概述 1.1 什么是是SSE2.2 与长链接(Long Polling)的区别 长链接(Long Polling)Server-Sent Events (SSE) 比较总结 2.通过okhttp调用SSE流式接口并流式返回给前端 环境要求使用okhttp相关依赖示例 3. 如果Spring Framework 低于5.0&#xff0c;可使用Servlet 3.0进行…...

倚光科技助力自由曲面设计与加工

近年来&#xff0c;自由曲面因其在光学、汽车、航空航天等领域的广泛应用&#xff0c;受到设计师和工程师的高度关注。自由曲面作为一种具有更高自由度的非球面透镜&#xff0c;能够在光学系统中实现更加精确的光线控制&#xff0c;优化像差校正&#xff0c;并且在满足功能需求…...

【推荐算法】推荐系统中的单目标精排模型

前言&#xff1a;推荐系统中模型发展较快&#xff0c;初学者【也就是笔者】很难对模型进行一个系统的学习。因此&#xff0c;这篇文章总结了王树森中的视频以及《深度学习推荐系统》中的单目标精排模型&#xff0c;绘制了一个单目标精排模型的思维导图来帮助初学者【笔者】更好…...

Android UI:ViewTree:源码分析:事件处理:显示事件

文章目录 概述测量:measure和onMeasure​​​​​​​ View.MeasureSpecViewViewGroupLinearLayoutRelativeLayout布局:layout和onLayout ViewViewGroupLinearLayoutRelativeLayout绘制:dispatchDraw、draw和onDraw ViewViewGroupLinearLayoutRelativeLayout总结概述 显示事…...

esp32 OTA学习笔记

csv分区表中ota-0和ota-1存放程序 不超过1600kb的程序可以ota&#xff08;可手动划分&#xff09; 分区表中有 ota0和ota1两个数据分区。 ota是指先下载固件到ota1然后下次从ota1启动&#xff0c;回滚就是回到ota0 启动。 关于固件&#xff1a; bin文件可以用arduino生成也可以…...

口语笔记——祈使句用法

省略主语 (You give me) a cup of tea, please. 一杯茶(You wait for) another minute. 两等一分钟(You) keep quiet. 保持安静give me a break. 饶了我吧take your hand off. 把你的手拿开take this thing away 把这东西拿开never talk to strangers. 永远不要跟陌生人说话Do…...

【微软azure】【devtunnel隧道】工具的使用及介绍

简介&#xff1a;这是一个微软自带的能进行内网穿透的工具&#xff0c;最长30天有效期&#xff0c;可以定时更新&#xff0c;保证端口永久可用----可以理解为永久的nginx 前提&#xff1a;有azure账号&#xff0c;且要有相关权限&#xff0c;试用账号是不行滴 使用说明 1.环…...

重生之我在异世界学智力题(1)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言智力题题目&#xff1a;《奇怪的时钟…...

九、页面级变量的状态管理

状态管理概述 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。 自定义组件拥有变量,变…...

#Vue3篇:defineOptionsvueUse

定义组件name 从 3.3 开始你可以直接通过 defineOptions 来设置组件名或 inheritAttrs 属性。 defineProps() 和 defineEmits() const props defineProps<{foo: stringbar?: number }>()const emit defineEmits<{(e: change, id: number): void(e: update, val…...

李飞飞的生成式3D场景,对数字孪生的未来影响几何?

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;致力于技术与艺术的融合。这是2024年输出的第47/100篇文章。 前言 这两天&#xff0c;AI界的教母李飞飞团队重磅发布了空间智能生成式AI大模型。 仅通过一张图片就能够生成一个可操作和交互的3D空间场景。 空间智能的…...

《操作系统 - 清华大学》6 -7:局部页面置换算法:Belady现象

文章目录 1. 定义2. LRU、FIFO和Clock的比较 1. 定义 局部页面置换算法的特点是针对一个正在运行的程序&#xff0c;它访问内存的情况&#xff0c;访问页的情况&#xff0c;来决定应该采取什么样策略&#xff0c;把相应的页替换出去&#xff0c;站在算法本身角度来考虑置换哪个…...

网络原理之 TCP 协议

目录 1. TCP 协议格式 2. TCP 原理 (1) 确认应答 (2) 超时重传 (3) 连接管理 a) 三次握手 b) 四次挥手 (4) 滑动窗口 (5) 流量控制 (6) 拥塞控制 (7) 延时应答 (8) 捎带应答 3. TCP 特性 4. 异常情况的处理 1) 进程崩溃 2) 主机关机 (正常流程) 3) 主机掉电 (…...

pinn爱看论文展

1.zhiwang 基于物理信息神经网络的波动方程优化求解方法 吴丹澜1梁展弘2余懿3蔡博3郑邦宏4王梓超4张紫玲4 1.肇庆学院计算机科学与软件学院,大数据学院2.香港城市大学电气工程系3.云浮市新兴县公安局4.肇庆学院计算机科学与软件学院、大数据学院 2&#xff0c;zhiwang 就爱…...

Burp(5)web网页端抓包与app渗透测试

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&…...

Spring 基础

什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地协助我们进行开发&#…...

go 集成nacos注册中心、配置中心

使用限制 Go>v1.15 Nacos>2.x 安装 使用go get安装SDK&#xff1a; go get -u github.com/nacos-group/nacos-sdk-go/v2 快速使用 初始化客户端配置ClientConfig constant.ClientConfig{TimeoutMs uint64 // 请求Nacos服务端的超时时间&#xff0c;默…...

一文掌握 OpenGL 几何着色器的使用

学习本文需要具备 OpenGL ES 编程基础,如果看起来比较费劲,可以先看入门文章 OpenGL ES 3.0 从入门到精通系统性学习教程 。 什么是几何着色器 几何着色器(Geometry Shader) OpenGL 管线中的可选着色器阶段,位于顶点着色器(Vertex Shader) 和光栅化阶段 之间。 其核心…...

《数据资产入表:企业资产评估的新契机》

《数据资产入表&#xff1a;企业资产评估的新契机》 在当今数字经济时代&#xff0c;数据作为关键生产要素&#xff0c;其重要性日益凸显。国家高度重视数据资产&#xff0c;陆续出台了一系列重磅政策。其中&#xff0c;“数据二十条” 即《中共中央 国务院关于构建数据基础制度…...

架构14-资源与调度

零、文章目录 架构14-资源与调度 1、资源模型 &#xff08;1&#xff09;概述 在 Kubernetes 中&#xff0c;资源模型是一个非常重要的概念&#xff0c;它涉及如何管理和分配集群中的资源&#xff0c;以确保 Pod 能够在最合适的节点上运行。资源模型不仅包括物理资源&#…...

uni-app H5端使用注意事项 【跨端开发系列】

&#x1f517; uniapp 跨端开发系列文章&#xff1a;&#x1f380;&#x1f380;&#x1f380; uni-app 组成和跨端原理 【跨端开发系列】 uni-app 各端差异注意事项 【跨端开发系列】uni-app 离线本地存储方案 【跨端开发系列】uni-app UI库、框架、组件选型指南 【跨端开…...

springboot407美发管理系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装美发管理系统软件来发挥其高效地信息处理的作用&#xff0…...

Apache-HertzBeat 开源监控默认口令登录

0x01 产品描述: HertzBeat(赫兹跳动) 是一个开源实时监控系统,无需Agent,性能集群,兼容Prometheus,自定义监控和状态页构建能力。HertzBeat 的强大自定义,多类型支持,高性能,易扩展,希望能帮助用户快速构建自有监控系统。0x02 漏洞描述: HertzBeat(赫兹跳动) 开源实时…...

发送请求时遇到了数据库完整性约束错误 1048 Column ‘platform‘ cannot be null

可以这样解决 在 Vue 2 中封装接口请求时&#xff0c;确保每次请求都包含 platform Header 参数的最佳实践是通过创建一个全局的 Axios 实例&#xff0c;并为这个实例设置默认的 Header。这样可以确保所有通过该实例发送的请求都会自动包含 platform 参数。此外&#xff0c;你…...

Go快速开发框架集成Vue3漂亮的动态流程图编辑和动态流程展示插件

温馨提示&#xff1a;我们分享的文章是给需要的人&#xff0c;不需要的人请绕过&#xff0c;文明浏览&#xff0c;误恶语伤人&#xff01; 前言 为大家在开发流程相关业务时有个漂亮流程图展示&#xff0c;我们集成一个实用的流程图编辑器&#xff0c;让流程开发变得简单&…...

【SH】微信小程序调用EasyDL零门槛AI开发平台的图像分类研发笔记

文章目录 微信小程序字符串字符串模板字符串拼接 上传图片GET请求测试编写测试代码域名不合法问题 GET和POST请求测试 微信小程序字符串 字符串模板 这是ES6引入的特性&#xff0c;允许你通过反引号&#xff08;&#xff09;创建模板字符串&#xff0c;并在其中嵌入变量或表达…...

NanoLog起步笔记-6-StaticLogInfo

nonolog起步笔记-6-StaticLogInfo StaticLogInfo文件名和行号文件名和行号的传入log参数 RuntimeLogger::registerInvocationSitelogid为什么只能被赋一次值 reserveAlloc加入消息头finishAlloc返回 StaticLogInfo 写C语言编译前端时&#xff0c;给我印象深刻的一部分是&#…...

【OpenCV】视频录制

初始化一个视频写入对象&#xff0c;目的是将图像帧序列保存为视频文件。使用了OpenCV库中的cv2.VideoWriter类来创建这个对象&#xff0c;并且设置了视频的编码格式、帧率以及分辨率。 导入库 import cv2 import datetime cv2 是 OpenCV 库的 Python 接口&#xff0c;提供了…...

同城到家预约上门服务解决方案:家政预约同城服务小程序

### 系统架构"同城到家预约上门服务解决方案&#xff1a;PHP家政预约同城服务小程序"采用B/S架构&#xff0c;后端使用PHP语言开发&#xff0c;前端则基于微信小程序平台。系统分为用户端、服务端和后台管理端&#xff0c;各端相互依赖又相互独立&#xff0c;支持多种…...

linux-14 关于shell(十三)type,内置命令和外部命令

我们说一个命令&#xff0c;叫做type&#xff0c;先来看看type的效果&#xff0c;比如说我指定type后面这个命令叫cd&#xff0c;如下图&#xff0c; 你看它说什么&#xff1f;cd is a shell builtin&#xff0c;我再 type ls&#xff0c;看它会说什么&#xff1f;如下图&#…...

使用php生成、识别二维码

1、生成二维码 要求&#xff1a; # 详见&#xff1a;https://packagist.org/packages/bacon/bacon-qr-code php: ^8.1iconv Library imagick Library # 或者&#xff1a;GD library 下载&#xff1a; # 详见&#xff1a;https://packagist.org/packages/bacon/bacon-qr-cod…...

pytorch多GPU训练教程

pytorch多GPU训练教程 文章目录 pytorch多GPU训练教程1. Torch 的两种并行化模型封装1.1 DataParallel1.2 DistributedDataParallel 2. 多GPU训练的三种架构组织方式2.2 数据不拆分&#xff0c;模型拆分&#xff08;Model Parallelism&#xff09;2.3 数据拆分&#xff0c;模型…...

日拱一卒(12)——leetcode学习记录:2的幂

一、题目 判断一个整数n是否是2的幂次&#xff0c;是返回True&#xff0c;否返回False 二、分析 1. 递归法&#xff1a;如果n是0&#xff0c;返回False&#xff0c;如果n是1&#xff0c;返回True&#xff0c;其他情况&#xff0c;将n//2递归 2. 数学法&#xff1a;还是从数…...

非文件形式的内存动态函数库调用接口

使用memfd的系统调用接口将动态库加载到proc虚拟文件系统&#xff0c;提供的fd为进程持有的句柄&#xff0c;通过dlopen的path指向此句柄&#xff0c;即可实现非文件系统加载动态链接库。 文章目录 一、memfd_create二、dl_open三、示例参考 一、memfd_create 接口名称int mem…...

TimeXplusplus——提高时间序列数据的可解释性,避免琐解和分布偏移问题的深度学习可解释性的框架

摘要 论文地址&#xff1a;https://arxiv.org/abs/2405.09308 源码地址&#xff1a;https://github.com/zichuan-liu/timexplusplus 信号传输技术的优化对于推动光通信的发展至关重要。本文将详细探讨线路编码技术的目标及其实现方式。线路编码旨在提高带宽和功率效率&#xf…...