青海电商网站建设公司/淘宝数据分析

青海电商网站建设公司,淘宝数据分析,西安最新疫情公布,做网站的文件1.问题描述 现有数据表如下图所示: 该表中包括省、市、县三级目录。 现要将其整理成数据表模板,如下图所示: 要求制作成下拉菜单的形式,且每一级目录的下拉菜单列表要根据上一级目录的内容来确定。 如上图所示,只有…

1.问题描述

现有数据表如下图所示:

该表中包括省、市、县三级目录。

现要将其整理成数据表模板,如下图所示:

要求制作成下拉菜单的形式,且每一级目录的下拉菜单列表要根据上一级目录的内容来确定。

如上图所示,只有在“省”级列表中选择了“北京市”,才能在“市”级列表中选择“北京市市辖区”,进而才能在“县区”级列表中选择“海淀区”“朝阳区”等内容。

2.主要思路

2.1第一步:数据字典整理

首先根据数据表中的内容,整理出多级数据字典,存放在Excel文件中不同的页面。如下图所示:

上图中分别整理出了省、市、县区三级字典。

其中一级字典(省)中,将数据项垂直排列即可;

二级字典(市)中,每行的第1个元素为上一级字典中的项,后续元素为该一级字典对应的二级字典中的项。如在二级字典(市)中,第1行中,第1个元素为“河南省”,后续元素分别为“开封市”“郑州市”。

三级字典(县区)以此类推。

2.2第二步:下拉菜单设置

根据前面制作的数据字典,在Excel中进行相关设置,制作出多级联动下拉菜单。

详细过程参见后文。

3.数据整理

(如果能够手动整理出上述的数据字典,则该部分可以略过。)

为了制作出所需的数据字典,使用Python对数据表进行处理,详细代码如下。

其中path为源文件路径,sheet_name为Excel文件内页面的名称,path_out为输出的字典文件路径。

import pandas as pd"""文件路径设置"""
path = r"D:\temp\data.xlsx"  # 源文件路径
sheet_name = "Sheet1"
path_out = r"D:\temp\data2.xlsx"  # 输出文件路径"""转换函数定义"""
"""用于将DataFrame格式转换为list(二维列表)格式"""
def frame2list(data):data_1 = data.iloc[:,0]  # 提取出DataFrame的第1列set_1 = set(data_1)  # 构建集合,用于将DataFrame第1列的数据去重if len(data.columns) == 1:return list(set_1)else:list_all = list()  # 初始化二维列表,用于存放DataFrame第1列每一项的处理结果for item in set_1:  # 依次处理DataFrame第1列每项数据data_temp = data[data.iloc[:,0]==item]  # 获取DataFrame中该项对应的所有行set_temp = set(data_temp.iloc[:,1])  # 将对应到的第2列中所有数据进行去重list_item = [item]  # 初始化一维列表,用于存放对应到的DataFrame第2列中的每项数据for item_temp in set_temp:  # 依次处理对应到的DataFrame第2列每项数据list_item.append(item_temp)  # 将该第2列数据加入一维列表list_all.append(list_item)  # 将一维列表加入二维列表return list_all"""主函数"""
if __name__ == "__main__":data = pd.read_excel(path, sheet_name=sheet_name, header=0)  # 读取Excel文件class_num = len(data.columns)  # 获取列数with pd.ExcelWriter(path_out) as f:  # 打开输出文件并写入for i in range(class_num):  # 逐列计算并写入输出文件dic_i = set()  # 初始化集合,用于消除重复值if i == 0:dic_i = set(data.iloc[:,0])else:dic_i = frame2list(data.iloc[:,i-1:i+1])df_i = pd.DataFrame(dic_i)  # 转换为DataFrame格式,便于输出为Excel文件df_i.to_excel(f, index=False, header=False, sheet_name=data.columns[i])  # 输出文件

该程序最终输出一个Excel文件,其中包含3个页面,分别对应3级数据字典。

如前文2.1节中的图所示。 

4.下拉菜单制作

4.1数据表准备

将上述生成的数据字典各页面与数据表模板放在一个Excel文件内,保存为不同的页面,如下图所示:

其中“数据表模板”页表示要制作出下拉菜单的数据表页面,如下图所示:

“省”“市”“县区”页分别为数据字典页。

4.2一级下拉菜单设置

对于一级菜单,选中所有需要填写一级目录数据的表格,在“数据”页点击“数据验证”。

进入“数据验证”对话框后,在“允许”项选择“序列”;

在“来源”项选择一级目录中的所有数据。

如:一级数据主要存放于Excel中“省”页面下的A1至A4格,则“来源”中填写“=省!$A1:$A4”。

其中“省”为Excel中存放以及数据的页面名称;“!”为页面与单元格之间的分隔符;“$A1:$A4”为数据在“省”页面中的分布范围。

注意在“来源”的输入框中,“A1”“A4”字母前面要有美元符号$,而数字前面不能有该符号。

如果手动选择字典中的单元格,默认字母和数字前面都会带上美元符号,所以需要手动取消。

返回“数据表模板”页面,看到一级目录已经设置完成。

4.3多级下拉联动菜单设置

在Excel中,对于二级、三级等目录,均进行如下设置:

4.3.1字典内容创建

对于二级目录,选中字典区域,然后点击“公式”栏中的“根据所选内容创建”。

对于三级目录,参照二级目录设置。

 在弹出的对话框中勾选“最左列”,确定。

 

4.3.2下拉菜单与字典的关联

以二级菜单为例。

在“数据表模板”页面中,选中所有需要填写二级数据表的单元格,点击“数据”页的“数据验证”。

在弹出的“数据验证”对话框中,“允许”一栏仍选择“序列”,“来源”一栏输入“=indirect($A2:$A4)” 。

其中indirect函数表示对上一级单元格的关联;

$A2:$A4表示该“数据表模板”页面中需要填写上一级目录的单元格范围。如上图单元格B2至B4内要填写“市”的内容,则indirect函数内要输入“省”的单元格范围($A2:$A4)。

注意这里的数字前面也不能加美元符号$。

点击“确定”后会提示“源当前包含错误”,点击“是”就可以。

回到“数据表模板”页面,可以看到二级联动下拉菜单也设置成功。

参照二级下拉菜单的设置,可以完成三级下拉菜单的设置。

 

最后可根据需要,将数据字典页面隐藏。

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

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

相关文章

SpringMVC执行的流程

SpringMVC 基于 MVC 架构模式,核心流程时前端控制室 DispathcherServlet 统一调度,通过组件协作完成 http 的请求与响应。 对于 dispatchServlet 作为前端请求的控制器,全局的访问点,首先将根据 URL 调用 HandlerMapping 获取 Han…

存储过程和自定义函数在银行信贷业务中的应用(oracle)

数据校验和清洗 例如,检查客户的年龄是否在合理范围内,贷款金额是否符合规定的上下限等。 对于不符合规则的数据,可以进行清洗和修正。比如,将空值替换为默认值,或者对错误的数据进行纠正。 CREATE OR REPLACE PROC…

指令微调 (Instruction Tuning) 与 Prompt 工程

引言 预训练语言模型 (PLMs) 在通用语言能力方面展现出强大的潜力。然而,如何有效地引导 PLMs 遵循人类指令, 并输出符合人类意图的响应, 成为释放 PLMs 价值的关键挑战。 指令微调 (Instruction Tuning) 和 Prompt 工程 (Prompt Engineerin…

【c++】反转字符串

说明 将string类型的字符串本身反转 用到库&#xff1a;algorithm 示例代码 #include <iostream> #include <string> #include <algorithm> using namespace std;int main() {string str "123";reverse(str.begin(), str.end());cout <<…

ARMV8的64位指令

一、介绍 ARMv8 体系结构最大的改变是增加了一个新的 64 位的指令集&#xff0c;这是早前 ARM 指令集 的有益补充和增强。它可以处理 64 位宽的寄存器和数据并且使用 64 位的指针来访问内存。这 个新的指令集称为 A64 指令集&#xff0c;运行在 AArch64 状态。 ARMv8 兼容旧的…

线性代数之矩阵特征值与特征向量的数值求解方法

文章目录 前言1. 幂迭代法&#xff08;Power Iteration&#xff09;幂法与反幂法求解矩阵特征值幂法求最大特征值编程实现补充说明 2. 逆幂迭代法&#xff08;Inverse Iteration&#xff09;移位反幂法 3. QR 算法&#xff08;QR Algorithm&#xff09;——稠密矩阵理论推导编程…

VScode:运行程序停止后,频繁出现终端进程被终止

VScode里面powershell被迫关闭 bug场景排查原因解决办法 bug场景 系统&#xff1a;Windows IDE&#xff1a;Visual Studio Code 停止运行程序后&#xff0c;按向上箭头想要执行上一步命令&#xff0c;忽然终端页面强行关闭&#xff0c;并报错如下&#xff1a; 终端进程 &quo…

【菜鸟飞】Conda安装部署与vscode的结合使用

介绍 Conda 是一个跨平台的开源工具&#xff0c;用于管理软件包和环境。最初由 Anaconda 公司开发&#xff0c;它的设计目标是支持数据科学和机器学习领域&#xff0c;但其功能不仅局限于此。 以下是 Conda 的核心特点&#xff1a; 包管理&#xff1a;安装、更新、卸载各种库…

单例模式的五种实现方式

1、饿汉式 ①实现&#xff1a;在类加载的时候就初始化实例 ②优点&#xff1a;线程安全 ③缺点&#xff1a;实例在类加载的时候创建&#xff0c;可能会浪费资源 //饿汉式 public class EagerSingleton{private EagerSingleton(){} //私有构造方法private static EagerSingle…

SwiftUI 让视图自适应高度的 6 种方法(四)

概览 在 SwiftUI 的世界里&#xff0c;我们无数次都梦想着视图可以自动根据布局上下文“因势而变”‌。大多数情况下&#xff0c;SwiftUI 会将每个视图尺寸处理的井井有条&#xff0c;不过在某些时候我们还是得亲力亲为。 如上图所示&#xff0c;无论顶部 TabView 容器里子视图…

小程序SSL证书过期怎么办?

SSL证书就像小程序的“安全锁”&#xff0c;一旦过期&#xff0c;用户访问时会被提示“不安全”&#xff0c;轻则流失客户&#xff0c;重则数据泄露&#xff01;作为企业负责人&#xff0c;如何快速解决证书过期问题&#xff1f;又该如何避免再次踩坑&#xff1f;这篇指南给你答…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_02带边框和斑马纹的固定表头表格

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

基础算法——顺序表

一、询问学号 题⽬来源&#xff1a;洛⾕ 题⽬链接&#xff1a;P3156 【深基15.例1】询问学号 - 洛谷 难度系数&#xff1a;★ 1. 题目描述 2. 算法原理 直接⽤ vector 或者数组模拟即可。 3. 参考代码 #include <iostream> #include <vector>using namespace st…

Ubuntu用户安装cpolar内网穿透

前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件&#xff0c;不仅能够在多种环境和应用场景中发挥巨大作用&#xff0c;还能适应多种操作系统&#xff0c;应用最为广泛的Windows、Mac OS系统自不必多说&#xff0c;稍显小众的Linux、树莓派、群辉等也在起支持之列&#…

Oracle比较好的几本书籍

1.《Oracle专家高级编程》 2.《Oracle高效设计》 3.《Oracle9i&10g&11g编程艺术深入数据库体系结构》 4.《让Oracle跑的更快》(1/2) ....... n.《Oracle官方文档的阅读》下面包括这几个部分&#xff0c;可以跟进研读一下&#xff1a; &#xff08;1&#xff09;《…

Android : Camera之CHI API

来自&#xff1a; https://www.cnblogs.com/szsky/articles/10861918.html 一、CAM CHI API功能介绍&#xff1a; CHI API建立在Google HAL3的灵活性基础之上&#xff0c;目的是将Camera2/HAL3接口分离出来用于使用相机功能&#xff0c;它是一个灵活的图像处理驱动程序&#…

Netty基础—2.网络编程基础四

大纲 1.网络编程简介 2.BIO网络编程 3.AIO网络编程 4.NIO网络编程之Buffer 5.NIO网络编程之实战 6.NIO网络编程之Reactor模式 5.NIO网络编程之Buffer (1)Buffer的作用 Buffer的作用是方便读写通道(Channel)中的数据。首先数据是从通道(Channel)读入缓冲区&#xff0c;从…

调试正常 ≠ 运行正常:Keil5中MicroLIB的“量子态BUG”破解实录

调试正常 ≠ 运行正常&#xff1a;Keil5中MicroLIB的“量子态BUG”破解实录——从勾选一个选项到理解半主机模式&#xff0c;嵌入式开发的认知升级 &#x1f4cc; 现象描述&#xff1a;调试与烧录的诡异差异 在线调试时 程序正常运行 - 独立运行时 设备无响应 ! 编译过程 0 Err…

算法每日一练 (9)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (9)最小路径和题目描述解题思路解题代码…

【高项】信息系统项目管理师(四)项目整合管理【4分】

一、管理基础 项目整合管理的责任不能被授权或转移&#xff0c;项目经理必须对整个项目承担最终责任。 执行项目整合时项目经理承担双重角色&#xff1a; 1、组织层面上&#xff0c;项目经理扮演重要角色&#xff0c;与项目发起人携手合作&#xff0c;了解战略目标并确保项目目…