6. 使用python将多个Excel文件合并到同一个excel-附代码解析

【目录】

文章目录

  • 6. 使用python将多个Excel文件合并到同一个excel-附代码解析
    • 1. 目标任务
    • 2. 结果展示
    • 3. 代码示例
    • 4. 代码解析
      • 4.1 导入库
      • 4.2 调用库的类、函数、变量语法
      • 4.3 os.listdir-返回目录中的文件名列表
      • 4.4 startswith-用于判断一个字符串是否以指定的前缀开头
      • 4.5 endswith-用于判断一个字符串是否以指定的后缀结束
      • 4.6 列表名.append向列表中增加元素
      • 4.7 pd.read_excel读取Excel文件
      • 4.8 将读取到的Excel数据添加到列表里
      • 4.9 pd.concat合并Pandas数据
      • 4.10 DataFrame.to_excel-将 DataFrame 保存为 excel 文件
      • 4.11 DataFrame.shape-查看 DataFrame 的行数和列数。
    • 5. 总结

【正文】

6. 使用python将多个Excel文件合并到同一个excel-附代码解析

1. 目标任务

某文件夹中有如下5个Excel:

在这里插入图片描述
在这里插入图片描述

销售表-1月.xlsx的内容如下:

在这里插入图片描述

5个Excel仅数据不一致,框架内容相同。

目标任务是将5个Excel合并成一个Excel。

2. 结果展示

在这里插入图片描述

3. 代码示例

源代码文件:6.合并多个Excel.py

import pandas as pd
import os
data_list = []# os.listdir(".")返回目录中的文件名列表
# 用for循环遍历文件名列表中的每个文件名,赋值给变量filename
for filename in os.listdir("."):# 判断文件名是否以"销售表-"开头并且以".xlsx"结尾if filename.startswith("销售表-") and filename.endswith(".xlsx"):# pd.read_excel(filename)读取Excel文件,返回一个DataFrame对象# 列表名.append将DataFrame写入列表data_list.append(pd.read_excel(filename))# concat合并Pandas数据
data_all =pd.concat(data_list)
# 将 DataFrame 保存为 excel 文件
data_all.to_excel("年度销售表.xlsx",index=False)# 查看 DataFrame 的行数和列数。
rows = data_all.shape
print("查看行数与列数:", rows)
print("恭喜你,合并完成!")

【终端输出】

查看行数与列数: (25, 4)
恭喜你,合并完成!

4. 代码解析

4.1 导入库

import pandas as pd

导入pandas库,并将其别名设置为pd

as是一个关键字,用于给导入库指定一个别名。

别名的作用是引用pandas库中的函数和类,不必每次都写完整的pandas,可以用别名pd代替。

import os

导入os库,os库用于操作文件和目录。

data_list = []

创建一个空列表,用于存储后面读取的Excel数据。

4.2 调用库的类、函数、变量语法

  • 调用库的类:库名.类名( ),如 csv.DictReader()
  • 调用库的函数:库名.函数名( ),如 os.mkdir()
  • 调用库的变量:库名.变量名,如 os.name

【总结】

  • 不管调用什么,库名后都需要紧跟一个英文小圆点.
  • 调用类和函数需要加英文圆括号( )
  • 调用变量不用加英文圆括号( ),因为变量没有参数可以传递。

4.3 os.listdir-返回目录中的文件名列表

listdir()是一个Python的内置函数,用于返回指定目录中所有文件和文件夹名称的列表。

【语法】

os.listdir(path)

【参数】

path[pɑːθ]:路径。

path表示路径,指文件和文件夹的目录路径。

path可以是相对路径或绝对路径。

【返回值】

返回的数据类型是列表。

列表中的每个元素都是字符串类型。

如果指定的路径不存在或不是一个目录,则会引发OSError异常

【相对路径】

import os
os.listdir(".")

【终端输出】

['1.ipynb','销售表-1月.xlsx','销售表-2月.xlsx','销售表-3月.xlsx','销售表-4月.xlsx','销售表-5月.xlsx']
  • os是库名。
  • .英文小圆点,库后接一个小圆点表示调用。
  • listdir函数名,作用是返回目录中所有文件和文件夹名称的列表。
  • 英文圆括号( )
  • ".",这里的表示当前工作目录。

【绝对路径】

import os
os.listdir("D:\安迪笔记\Excel合并")

【终端输出】

['1.ipynb','年度销售表.xlsx','销售表-1月.xlsx','销售表-2月.xlsx','销售表-3月.xlsx','销售表-4月.xlsx','销售表-5月.xlsx']

上述代码中的.也可以换成绝对路径"D:\安迪笔记\Excel合并"

"D:\安迪笔记\Excel合并"是我表格文件的存储路径,你需要换成你的路径。

os库的相关知识可参考下面的链接:

72. import 导入标准模块(os模块)

路径的相关知识可参考下面的链接:

67. Python的绝对路径

68. Python的相对路径

for filename in os.listdir("."):print(filename)

【终端输出】

1.ipynb
年度销售表.xlsx
销售表-1月.xlsx
销售表-2月.xlsx
销售表-3月.xlsx
销售表-4月.xlsx
销售表-5月.xlsx
  • os.listdir(".")得到的是一个文件名列表。
  • 用for循环遍历文件名列表中的每个文件名,赋值给变量filename
  • filename的数据类型为字符串类型。
filename = '1.ipynb'
filename = '销售表-1月.xlsx'
filename = '销售表-2月.xlsx'
filename = '销售表-3月.xlsx'
filename = '销售表-4月.xlsx'
filename = '销售表-5月.xlsx'

4.4 startswith-用于判断一个字符串是否以指定的前缀开头

startswith() 是 Python 字符串方法之一,用于判断一个字符串是否以指定的前缀开头

【语法】

string.startswith(prefix, start, end)

string表示一个具体的字符串。

startswith是方法名。

【参数】

  • prefix:必需参数,表示要检查的前缀,可以是一个字符或一个字符串。
  • start:可选参数,指定开始检查的起始位置,默认为 0。
  • end:可选参数,指定结束检查的位置,默认为字符串的长度。

【返回值】

返回一个布尔值,表示字符串是否以指定的前缀开始。

如果字符串以指定的前缀开始,则返回 True;否则返回 False。

【代码示例】

string = "安迪python学习笔记"# 判断字符串是否以安迪开头
# 是输出 True
print(string.startswith("安迪")) # 字符串索引从0开始编号
# 索引2对应字符串的第3个字符
# 从字符串索引为2的位置开始检查
# 判断字符串第3位(包含)之后是否为python
# 是,输出 True
print(string.startswith("python", 2))  # 检查范围为字符串索引2到索引8
print(string.startswith("Python", 2, 8))  # 这里是大写,输出False
print(string.startswith("python", 2, 8))  # 输出 True

【终端输出】

True
True
False
True

【实操练习】

filename = '销售表-1月.xlsx'
print(filename.startswith("销售表-")) 

【终端输出】

True

filename是变量名,数据类型是字符串。

返回True表示字符串以销售表-开头。

filename = '1.ipynb'
print(filename.startswith("销售表-"))

【终端输出】

False

返回False表示字符串不是以销售表-开头。

for filename in os.listdir("."):print(filename.startswith("销售表-"))

【终端输出】

False
True
True
True
True
True

4.5 endswith-用于判断一个字符串是否以指定的后缀结束

【语法】

string.endswith(suffix, start, end)

【参数】

  • suffix:必需参数,表示要检查的后缀,可以是字符串或元组类型。如果是元组,则会依次检查后缀是否包含在元组中的任意一个。
  • start:可选参数,指定开始检查的索引位置,默认为 0,表示从字符串的开头开始。
  • end:可选参数,指定结束检查的索引位置,默认为字符串的长度,表示一直检查到字符串的末尾。

【返回值】

返回一个布尔值,表示字符串是否以指定的后缀结束。

如果字符串以指定的后缀结束,则返回 True;否则返回 False。

【实操练习】

filename = '销售表-1月.xlsx'
print(filename.endswith(".xlsx"))

【终端输出】

True

返回True表示字符串以.xlsx结束。

filename = '1.ipynb'
print(filename.endswith(".xlsx"))

【终端输出】

False

返回False表示字符串不是以.xlsx结束。

for filename in os.listdir("."):print(filename.endswith(".xlsx"))

【终端输出】

False
True
True
True
True
True
if filename.startswith("销售表-") and filename.endswith(".xlsx"):

filenamee.startswith("销售表-")检查文件名是否以销售表-开头。
filename.endswith(".xlsx") 检查文件名是否以.xlsx结尾。
如果文件名符合上述两个条件,则执行以下代码块。

判断文件名是否以"销售表-“开头并且以”.xlsx"结尾

data_list.append(pd.read_excel(filename))

4.6 列表名.append向列表中增加元素

append函数用于在列表的末尾添加一个元素。

【语法】

列表名.append(要添加的元素)

【代码示例1】

data_list  = []
data_list.append("张三")
print(data_list)

【终端输出】

['张三']

【代码示例2】

data_list  = []
for i in range(3):data_list.append(i)
print(data_list)

【终端输出】

[0, 1, 2]

4.7 pd.read_excel读取Excel文件

read_excel是pandas 库中一个方法。

作用是读取 Excel 文件中的数据。

【语法】

pandas.read_excel(io)

read_excel方法提供了许多参数,这里仅介绍一个路径参数。

【参数】

io:要读取的Excel文件的路径(字符串类型)。

【返回值】

返回一个DataFrame对象。

【代码示例】

pd.read_excel('销售表-1月.xlsx')

【终端输出】

日期员工编号员工姓名销售额
0449273001刘一1000
1449283002陈二2000
2449293003张三3000
3449303004李四4000
4449313005王五5000
  • pd库名。
  • .英文小圆点,作用是调用库的方法。
  • read_excel方法名,作用是读取Excel文件。
  • 参数'销售表-1月.xlsx',表示要读取的Excel文件的路径。
print(type(pd.read_excel('销售表-1月.xlsx')))

【终端输出】

<class 'pandas.core.frame.DataFrame'>

返回的是DataFrame对象。

【思路解析】

通过4.5代码我们知道我当前的文件夹里有6个文件,如下所示:

filename = '1.ipynb'
filename = '销售表-1月.xlsx'
filename = '销售表-2月.xlsx'
filename = '销售表-3月.xlsx'
filename = '销售表-4月.xlsx'
filename = '销售表-5月.xlsx'

我的目标任务是要汇总5个Excel表格,因此我用了一个if条件判断语句选取了要汇总的文件路径,排除了不需要汇总的文件路径。

if filename.startswith("销售表-") and filename.endswith(".xlsx"):

filename = '1.ipynb'时,if条件判断语句的结果为False,它不会执行后面的读取Excel代码。

filename = '销售表-1月.xlsx'时,if条件判断语句的结果为True,执行后面的读取Excel代码。

【实操练习】

for filename in os.listdir("."):if filename.startswith("销售表-") and filename.endswith(".xlsx"):data = pd.read_excel(filename)print(data)

【终端输出】

      日期  员工编号 员工姓名   销售额
0  44927  3001   刘一  1000
1  44928  3002   陈二  2000
2  44929  3003   张三  3000
3  44930  3004   李四  4000
4  44931  3005   王五  5000日期  员工编号 员工姓名   销售额
0  44958  3001   刘一  1000
1  44959  3002   陈二  2000
2  44960  3003   张三  3000
3  44961  3004   李四  4000
4  44962  3005   王五  5000日期  员工编号 员工姓名   销售额
0  44986  3001   刘一  1000
1  44987  3002   陈二  2000
2  44988  3003   张三  3000
3  44989  3004   李四  4000
4  44990  3005   王五  5000日期  员工编号 员工姓名   销售额
0  45017  3001   刘一  1000
1  45018  3002   陈二  2000
2  45019  3003   张三  3000
3  45020  3004   李四  4000
4  45021  3005   王五  5000日期  员工编号 员工姓名   销售额
0  45047  3001   刘一  1000
1  45048  3002   陈二  2000
2  45049  3003   张三  3000
3  45050  3004   李四  4000
4  45051  3005   王五  5000

通过pd.read_excel(filename)读取到的数据如上所示。

data = pd.read_excel(filename)
  • data变量名,数据类型为DataFrame
  • pd库名。
  • .英文小圆点,作用是调用库的方法。
  • read_excel方法名,作用是读取Excel文件。
  • 参数filename,表示要读取的Excel文件的路径。

4.8 将读取到的Excel数据添加到列表里

data_list = []
for filename in os.listdir("."):if filename.startswith("销售表-") and filename.endswith(".xlsx"):data_list.append(pd.read_excel(filename))
print(data_list)

【终端输出】

[      日期  员工编号 员工姓名   销售额
0  44927  3001   刘一  1000
1  44928  3002   陈二  2000
2  44929  3003   张三  3000
3  44930  3004   李四  4000
4  44931  3005   王五  5000,       日期  员工编号 员工姓名   销售额
0  44958  3001   刘一  1000
1  44959  3002   陈二  2000
2  44960  3003   张三  3000
3  44961  3004   李四  4000
4  44962  3005   王五  5000,       日期  员工编号 员工姓名   销售额
0  44986  3001   刘一  1000
1  44987  3002   陈二  2000
2  44988  3003   张三  3000
3  44989  3004   李四  4000
4  44990  3005   王五  5000,       日期  员工编号 员工姓名   销售额
0  45017  3001   刘一  1000
1  45018  3002   陈二  2000
2  45019  3003   张三  3000
3  45020  3004   李四  4000
4  45021  3005   王五  5000,       日期  员工编号 员工姓名   销售额
0  45047  3001   刘一  1000
1  45048  3002   陈二  2000
2  45049  3003   张三  3000
3  45050  3004   李四  4000
4  45051  3005   王五  5000]

观察输出结果,注意输出的列表中包含5个列名:日期 员工编号 员工姓名 销售额

data_list.append(pd.read_excel(filename))
  • data_list列表名。

  • .英文小圆点。

  • append函数名,作用是向列表增加元素。

  • pd是库名。

  • read_excel读取 Excel 文件中的数据。

  • filename文件路径。

  • pd.read_excel(filename)得到的是一个DataFrame对象。

4.9 pd.concat合并Pandas数据

concat ()方法用于连接两个或多个数组。

【语法】

pandas.concat(objs, axis=0, join='outer', ignore_index=False)

【参数】

objs:要合并的 Pandas 数据结构,可以是 Series、DataFrame 或者 Panel 对象的列表或字典。
axis:指定合并的轴向,默认为 0,表示按行进行合并;如果设置为 1,表示按列进行合并。
join:指定合并的方式,默认为 ‘outer’,表示按照索引的并集进行合并;如果设置为 ‘inner’,表示按照索引的交集进行合并。
ignore_index:是否忽略原始对象的索引,默认为 False。如果设置为 True,则会创建一个新的整数索引。

【代码示例】

import pandas as pd# 创建两个 DataFrame 对象
df1 = pd.DataFrame({'姓名': ['张三', '李四', '王五'], '性别': ['男', '男', '女']})
df2 = pd.DataFrame({'姓名': ['赵六', '孙七', '周八'], '性别': ['男', '男', '女']})# 按行合并两个 DataFrame
result = pd.concat([df1, df2], axis=0, ignore_index=True)
print(result)

【终端输出】

   姓名 性别
0  张三  男
1  李四  男
2  王五  女
3  赵六  男
4  孙七  男
5  周八  女

上述代码要合并的是DataFrame对象。

【实操练习】

data_all =pd.concat(data_list)
print(data_all)
print(type(data_all))

【终端输出】

      日期  员工编号 员工姓名   销售额
0  44927  3001   刘一  1000
1  44928  3002   陈二  2000
2  44929  3003   张三  3000
3  44930  3004   李四  4000
4  44931  3005   王五  5000
0  44958  3001   刘一  1000
1  44959  3002   陈二  2000
2  44960  3003   张三  3000
3  44961  3004   李四  4000
4  44962  3005   王五  5000
0  44986  3001   刘一  1000
1  44987  3002   陈二  2000
2  44988  3003   张三  3000
3  44989  3004   李四  4000
4  44990  3005   王五  5000
0  45017  3001   刘一  1000
1  45018  3002   陈二  2000
2  45019  3003   张三  3000
3  45020  3004   李四  4000
4  45021  3005   王五  5000
0  45047  3001   刘一  1000
1  45048  3002   陈二  2000
2  45049  3003   张三  3000
3  45050  3004   李四  4000
4  45051  3005   王五  5000
<class 'pandas.core.frame.DataFrame'>

观察输出结果,注意输出的列表中仅包含1个列名:日期 员工编号 员工姓名 销售额

data_all =pd.concat(data_list)

  • data_all变量名,DataFrame对象,存储合并后的数据。
  • pd库名。
  • .英文小圆点。
  • concat方法名,作用是合并Pandas数据。
  • data_list要合并的数据。

4.10 DataFrame.to_excel-将 DataFrame 保存为 excel 文件

【语法】

DataFrame.to_excel(path, index=False)

DataFrame.to_excel将 DataFrame 保存为 excel 文件。

【参数】

path路径参数,将DataFrame保存到指定的路径下。

index可选参数。

index=True,保存索引列。

index=False,不保存索引列。

【实操练习】

data_all.to_excel("年度销售表.xlsx",index=False)
  • data_all变量名,DataFrame对象,存储了合并后的数据。
  • .英文小圆点。
  • to_excel方法名,作用是将 DataFrame 保存为 excel 文件。
  • "年度销售表.xlsx"路径参数,即汇总后Excel文件名。
  • index=False不保存索引列。

运行上面的代码后,当前文件夹下会生成一个名为年度销售表.xlsx文件。

在这里插入图片描述

4.11 DataFrame.shape-查看 DataFrame 的行数和列数。

shape 是 Pandas 库中的 DataFrame 对象的属性。

调用DataFrame.shape 会返回一个元组。

该元组包含两个整数值,分别表示 DataFrame 的行数和列数。

【代码示例】

import pandas as pddata = {'姓名': ['张三', '李四', '王五'],'年龄': [25, 30, 35]}df = pd.DataFrame(data)
print(df)
print(df.shape)  # 输出 (3, 3)

【终端输出】

   姓名  年龄
0  张三  25
1  李四  30
2  王五  35
(3, 2)

元组的3表示DataFrame对象有3行。
元组的2表示DataFrame对象有2列。

注意不包含列索引和行索引。

在这里插入图片描述

【实操练习】

rows = data_all.shape
print("查看行数与列数:", rows)

【终端输出】

查看行数与列数: (25, 4)

【备注】

联系作者回复【6.合并多个Excel】领取源文件和表格。

5. 总结

在这里插入图片描述

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

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

相关文章

Netty入门学习和技术实践

Netty入门学习和技术实践 Netty1.Netty简介2.IO模型3.Netty框架介绍4. Netty实战项目学习5. Netty实际应用场景6.扩展 Netty 1.Netty简介 Netty是由JBOSS提供的一个java开源框架&#xff0c;现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具&…

Docker 将容器打包成镜像推送镜像到仓库

Docker 将容器打包成镜像&推送镜像到仓库 一、将容器打包成镜像 $ docker commit <容器ID> <镜像名称:标签>示例&#xff1a; $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

数字孪生:重塑制造、医疗和能源等领域的未来

数字孪生技术&#xff0c;作为虚拟仿真的重要领域&#xff0c;正以其强大的能力在各个行业中创造前所未有的创新。本文带大家一起深入探讨数字孪生技术在不同领域的广泛应用场景&#xff0c;展示其在实现效率、可靠性和智能化方面的积极影响。 制造业与工业领域 数字孪生技术在…

Python+TinyPNG熊猫网站自动化的压缩图片

前言 本篇在讲什么 PythonTinyPNG自动化处理图片 本篇需要什么 对Python语法有简单认知 依赖Python2.7环境 依赖TinyPNG工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449;…

抽象类和接口有什么区别?

在 Java 中&#xff0c;抽象类和接口是两种不同的类类型。它们都不能直接实例化&#xff0c;并且它们都是用来定义一些基本的属性和方法的&#xff0c;但它们有以下几点不同&#xff1a; 定义不同&#xff1a;定义的关键字不同&#xff0c;抽象类是 abstract&#xff0c;而接口…

ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564)

安全之安全(security)博客目录导读 ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564) 二、 CVE-2017-7564 一、ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564) Title 启用安全自托管侵入式调试接口&#xff0c;可允许非安全世界引发安全世界panic CV…

【LeetCode75】第三十七题 二叉树中的最长交错路径

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一棵二叉树&#xff0c;问我们在这棵树里能找到的最长交错路径。最长交错路径就是在二叉树里一左一右一左一右这样走&#xff0c;最…

java- ConcurrentHashMap 并发

1. ConcurrentHashMap 并发 1.1. 减小锁粒度 减小锁粒度是指缩小锁定对象的范围&#xff0c;从而减小锁冲突的可能性&#xff0c;从而提高系统的并发能力。减小锁粒度是一种削弱多线程锁竞争的有效手段&#xff0c;这种技术典型的应用是 ConcurrentHashMap(高性能的 HashMap)…

RT1050的ADC

文章目录 1 ADC介绍2 ADC框图2.1 外部输入通道2.2 输入电压范围2.3 触发源2.4 时钟源2.5 偏移矫正功能2.5.1 校准 1 ADC介绍 RT1052 有 2 个 ADC&#xff0c;每个 ADC 有 12 位、10 位、8 位可选&#xff0c;每个 ADC 有 16 个外部通道。 ADC具有最高 1MS/s 采样率支持单次或…

23.树表和哈希表的查找

当表插入、删除操作频繁时&#xff0c;为维护表的有序性&#xff0c;需要移动表中很多记录。基于此&#xff0c;我们可以改用动态查找表——几种特殊的树。表结构在查找过程中动态生成。对于给定值key&#xff0c;若表中存在&#xff0c;则成功返回&#xff1b;否则&#xff0c…

【微服务】Ribbon的实现原理

1、场景&#xff1a;这里有两个服务&#xff0c;user-server和store-server 1.1、user服务 接口&#xff1a; package com.lkx.user.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController…

HashTable, HashMap, ConcurrentHashMap 之间的区别

前言 哈希表的组织形式是这样的&#xff1a; 对于哈希表这种重要而又频繁被使用的数据结构&#xff0c;是否线程安全往往是人们经常考虑的方向之一。 一、HashTable HashTable是线程安全的。但是它的线程安全在于它的关键方法都使用了synchronized&#xff0c;比如get方法、pu…

Python | assert关键字

Python断言assert是帮助代码流畅的调试工具。断言主要是假设程序员知道或总是希望是真的&#xff0c;因此将它们放在代码中&#xff0c;这样这些失败不会允许代码进一步执行。 简单地说&#xff0c;断言是一个布尔表达式&#xff0c;用来检查语句是True还是False。如果语句为T…

R包开发-2.2:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)

目录 4-添加C函数 5-编辑元数据 6-启用Roxygen&#xff0c;执行文档化。 7-单元测试 8-在自己的计算机上安装R包&#xff1a; 9-程序发布 参考&#xff1a; 为什么要写这篇文章的更新日期&#xff1f;因为R语言发展很快&#xff0c;很多函数或者方式&#xff0c;现在可以使…

js中作用域的理解?

1.作用域 作用域&#xff0c;即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合 换句话说&#xff0c;作用域决定了代码区块中变量和其他资源的可见性 举个例子 function myFunction() {let inVariable "函数内部变量"; } myFunction();//要先执行这…

NPM 管理组织包

目录 1、关于组织范围和包 1.1 管理无作用域的包 2、使用组织设置配置npm客户端 2.1 配置您的npm客户端以使用您组织的范围 为所有新包设置组织范围 为单个包设置组织范围 2.2 将默认包可见性更改为public 将单个包的包可见性设置为public 将所有包的包可见性设置为pu…

人脸识别平台批量导入绑定设备的一种方法

因为原先平台绑定设备是通过一个界面进行人工选择绑定或一个人一个人绑定设备。如下&#xff1a; 但有时候需要在几千个里选择出几百个&#xff0c;那这种方式就不大现实了&#xff0c;需要另外一种方法。 目前相到可以通过导入批量数据进行绑定的方式。 一、前端 主要是显示…

opencv进阶18-基于opencv 决策树导论

1. 什么是决策树&#xff1f; 决策树是最早的机器学习算法之一&#xff0c;起源于对人类某些决策过程 的模仿&#xff0c;属于监督学习算法。 决策树的优点是易于理解&#xff0c;有些决策树既可以做分类&#xff0c;也可以做回归。在排名前十的数据挖掘算法中有两种是决策树[1…

软件设计师学习笔记6-存储系统

1.层次化存储体系 1.1层次化存储结构 局部性原理是层次化存储结构的支持 时空局部性&#xff1a;刚被访问的内容&#xff0c;立即又被访问(eg: 循环体 ) 空间局部性&#xff1a;刚被访问的内容&#xff0c;临近的空间很快被访问(eg:数组) 1.2层次化存储结构的分类 DRAM&…

统计学补充概念-17-线性决策边界

概念 线性决策边界是一个用于分类问题的线性超平面&#xff0c;可以将不同类别的样本分开。在二维空间中&#xff0c;线性决策边界是一条直线&#xff0c;将两个不同类别的样本分隔开来。对于更高维的数据&#xff0c;决策边界可能是一个超平面。 线性决策边界的一般形式可以表…