Python酷库之旅-第三方库Pandas(017)

目录

一、用法精讲

41、pandas.melt函数

41-1、语法

41-2、参数

41-3、功能

41-4、返回值

41-5、说明

41-5-1、宽格式数据(Wide Format)

41-5-2、长格式数据(Long Format)

41-6、用法

41-6-1、数据准备

41-6-2、代码示例

41-6-3、结果输出

42、pandas.pivot函数

42-1、语法

42-2、参数

42-3、功能

42-4、返回值

42-5、说明

42-6、用法

42-6-1、数据准备

42-6-2、代码示例

42-6-3、结果输出 

43、pandas.pivot_table函数

43-1、语法

43-2、参数

43-3、功能

43-4、返回值

43-5、说明

43-6、用法

43-6-1、数据准备

43-6-2、代码示例

43-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

41、pandas.melt函数
41-1、语法
# 41、pandas.melt函数
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)
Unpivot a DataFrame from wide to long format, optionally leaving identifiers set.This function is useful to massage a DataFrame into a format where one or more columns are identifier variables (id_vars), while all other columns, considered measured variables (value_vars), are “unpivoted” to the row axis, leaving just two non-identifier columns, ‘variable’ and ‘value’.Parameters:
id_vars
scalar, tuple, list, or ndarray, optional
Column(s) to use as identifier variables.value_vars
scalar, tuple, list, or ndarray, optional
Column(s) to unpivot. If not specified, uses all columns that are not set as id_vars.var_name
scalar, default None
Name to use for the ‘variable’ column. If None it uses frame.columns.name or ‘variable’.value_name
scalar, default ‘value’
Name to use for the ‘value’ column, can’t be an existing column label.col_level
scalar, optional
If columns are a MultiIndex then use this level to melt.ignore_index
bool, default True
If True, original index is ignored. If False, the original index is retained. Index labels will be repeated as necessary.Returns:
DataFrame
Unpivoted DataFrame.
41-2、参数

41-2-1、frame(必须)要转换的DataFrame。

41-2-2、id_vars(可选,默认值为None)在熔化过程中用作标识符变量的列名列表,这些列将保持在结果DataFrame中,不会“熔化”成行,如果不提供,则假定没有标识符变量,所有列都将被熔化。

41-2-3、value_vars(可选,默认值为None)要熔化成行变量的列名列表,如果未指定,则除了id_vars之外的所有列都将被熔化。

41-2-4、var_name(可选,默认值为None)在熔化后的DataFrame中,用于存储原列名(即value_vars中的列名)的列名,如果未指定,则默认为'variable'。

41-2-5、value_name(可选,默认值为'value')在熔化后的DataFrame中,用于存储原列值的列名。

41-2-6、col_level(可选,默认值为None)如果列是多级索引(MultiIndex),则此参数用于选择将被熔化的级别,可以是级别编号、级别名称或级别名称的元组/列表。

41-2-7、ignore_index(可选,默认值为True)是否在熔化后重置索引,如果为True,则忽略原始索引,并在熔化后创建一个新的整数索引。

41-3、功能

        用于将DataFrame中的宽格式数据(即具有多个变量列的数据)转换为长格式(或称为“熔化”格式),这在进行数据可视化准备数据以进行某些类型的分析时非常有用。

41-4、返回值

        返回一个新的DataFrame,该DataFrame包含了熔化后的数据。

41-5、说明

        宽格式数据和长格式数据是数据处理中常见的两种数据格式,它们在数据结构和呈现方式上有所不同,适用于不同的分析需求。

41-5-1、宽格式数据(Wide Format)

41-5-1-1、定义
        宽格式数据是指数据集对所有的变量进行了明确的细分,每个变量都占有一列,每个观察值占有一行,这种格式下,数据总体的表现为变量多而观察值少,每一行数据为一条完整的记录,记录着某个实体(如个体、时间点等)的各种属性或变量。

41-5-1-2、特点

41-5-1-2-1、变量多而观察值少:每个变量都作为一列存在,每行数据包含该实体所有变量的值。
41-5-1-2-2、易于理解:对于人类阅读者来说,宽格式数据通常更直观易懂,因为每行都是一个实体的完整信息。
41-5-1-2-3、适用于某些分析:在需要同时查看多个变量值的情况下,宽格式数据更为方便。

41-5-1-3、示例        

        假设有一份学生信息表,包括学生的姓名、年龄、性别、成绩等字段,每行代表一个学生的信息,那么这份数据就是宽格式数据。

41-5-2、长格式数据(Long Format)

41-5-2-1、定义

        长格式数据一般是指数据集中的变量没有做明确的细分,即变量中至少有一个变量中的元素存在值严重重复循环的情况(可以归为几类),表格整体的形状为长方形,即变量少而观察值多,在这种格式下,每一行数据记录的是某个实体(如个体、时间点等)的一个属性或变量的值,形式通常为“key:value”对。

41-5-2-2、特点

41-5-2-2-1、变量少而观察值多:数据通过更多的行来表示,每行只包含一个变量(或属性)的值,以及一个或多个用于标识实体的标识符(如ID)。
41-5-2-2-2、便于数据分析:在需要进行统计分析、数据可视化或建模时,长格式数据通常更为灵活和方便。
41-5-2-2-3、需要转换:在某些情况下,为了进行特定的分析或可视化,可能需要将宽格式数据转换为长格式数据。

41-5-2-3、示例

        如果上述学生信息表被转换为长格式,那么可能会有多行数据来分别表示每个学生的姓名、年龄、性别和成绩等信息,每行都会包含一个标识符(如学生ID)来区分不同的学生。

        总之,宽格式数据和长格式数据各有优缺点,适用于不同的场景和需求。在处理数据时,应根据具体的分析目标和工具选择合适的数据格式;同时,了解如何在不同格式之间进行转换也是数据处理和分析的重要技能之一。

41-6、用法
41-6-1、数据准备
41-6-2、代码示例
# 41、pandas.melt函数
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'baz'],'B': [1, 2, 3],'C': [4, 5, 6]
})
print(df, end='\n\n')
melted_df = pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
print(melted_df)
41-6-3、结果输出
# 41、pandas.melt函数
#      A  B  C
# 0  foo  1  4
# 1  bar  2  5
# 2  baz  3  6
# 
#      A variable  value
# 0  foo        B      1
# 1  bar        B      2
# 2  baz        B      3
# 3  foo        C      4
# 4  bar        C      5
# 5  baz        C      6
42、pandas.pivot函数
42-1、语法
# 42、pandas.pivot函数
pandas.pivot(data, *, columns, index=_NoDefault.no_default, values=_NoDefault.no_default)
Return reshaped DataFrame organized by given index / column values.Reshape data (produce a “pivot” table) based on column values. Uses unique values from specified index / columns to form axes of the resulting DataFrame. This function does not support data aggregation, multiple values will result in a MultiIndex in the columns. See the User Guide for more on reshaping.Parameters:
data
DataFrame
columns
str or object or a list of str
Column to use to make new frame’s columns.index
str or object or a list of str, optional
Column to use to make new frame’s index. If not given, uses existing index.values
str, object or a list of the previous, optional
Column(s) to use for populating new frame’s values. If not specified, all remaining columns will be used and the result will have hierarchically indexed columns.Returns:
DataFrame
Returns reshaped DataFrame.Raises:
ValueError:
When there are any index, columns combinations with multiple values. DataFrame.pivot_table when you need to aggregate.
42-2、参数

42-2-1、data(必须)DataFrame或Series对象,这是你想要重塑的原始数据。

42-2-2、columns(必须)用于新DataFrame的列索引的列名或列名列表,这个参数指定了原始DataFrame中哪些列的值将被用作新DataFrame的列标题。

42-2-3、index(必须)用于新DataFrame的行索引的列名或列名列表,如果未指定,则使用原始 DataFrame 的索引,这个参数是必需的(虽然在函数签名中标记为可选,但实际上不指定会导致错误),但函数签名中的_NoDefault.no_default是一种内部机制,用于在函数定义时表明这个参数不应该有默认值,必须显式提供。

42-2-4、values(可选)指定哪些列的值应该被填充到新DataFrame的单元格中,如果未指定,则所有剩余列的值都会被填充进去,但这样可能会导致结果DataFrame的列具有多层索引(MultiIndex),因为每个剩余列都会成为一层。

42-3、功能

        似于Excel中的数据透视表功能,它允许用户根据指定的行索引(index)和列索引(columns)来重塑DataFrame,并将选定的值(values)填充到新的DataFrame中。

42-4、返回值

        返回一个新的DataFrame对象,该对象根据指定的行索引、列索引和值进行了重塑。返回的DataFrame的行由index参数指定的列的值确定,列由columns参数指定的列的值确定,而单元格的值则由values参数指定的列的值填充。

42-5、说明

42-5-1、如果在指定的index和columns下存在重复的values,pivot函数将抛出错误,因为它无法确定如何将这些重复的值分配到新的DataFrame中。

42-5-2、pivot函数不支持直接的数据聚合运算,但它可以通过重新排列数据来为后续的聚合运算(如使用groupby和agg函数)提供便利。

42-5-3、在使用pivot函数时,必须确保index和columns参数指定的列中的值能够唯一地确定每个单元格的位置,否则将无法生成有效的DataFrame。

42-6、用法
42-6-1、数据准备
42-6-2、代码示例
# 42、pandas.pivot函数
import pandas as pd
# 创建一个包含销售数据的字典
data = {'year': [2023, 2023, 2024, 2024],'product': ['A', 'B', 'A', 'B'],'sales': [100, 200, 150, 250]
}
# 将字典转换为DataFrame
df = pd.DataFrame(data)
print(df, end='\n\n')# 使用pivot重塑DataFrame
# 指定'year'为行索引,'product'为列索引,'sales'为要填充的值
pivoted = pd.pivot(df, index='year', columns='product', values='sales')
# 打印重塑后的DataFrame
print(pivoted)
42-6-3、结果输出 
# 42、pandas.pivot函数
#    year product  sales
# 0  2023       A    100
# 1  2023       B    200
# 2  2024       A    150
# 3  2024       B    250# product    A    B
# year             
# 2023     100  200
# 2024     150  250
43、pandas.pivot_table函数
43-1、语法
# 43、pandas.pivot_table函数
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=_NoDefault.no_default, sort=True)
Create a spreadsheet-style pivot table as a DataFrame.The levels in the pivot table will be stored in MultiIndex objects (hierarchical indexes) on the index and columns of the result DataFrame.Parameters:
dataDataFrame
valueslist-like or scalar, optional
Column or columns to aggregate.indexcolumn, Grouper, array, or list of the previous
Keys to group by on the pivot table index. If a list is passed, it can contain any of the other types (except list). If an array is passed, it must be the same length as the data and will be used in the same manner as column values.columnscolumn, Grouper, array, or list of the previous
Keys to group by on the pivot table column. If a list is passed, it can contain any of the other types (except list). If an array is passed, it must be the same length as the data and will be used in the same manner as column values.aggfuncfunction, list of functions, dict, default “mean”
If a list of functions is passed, the resulting pivot table will have hierarchical columns whose top level are the function names (inferred from the function objects themselves). If a dict is passed, the key is column to aggregate and the value is function or list of functions. If margin=True, aggfunc will be used to calculate the partial aggregates.fill_valuescalar, default None
Value to replace missing values with (in the resulting pivot table, after aggregation).marginsbool, default False
If margins=True, special All columns and rows will be added with partial group aggregates across the categories on the rows and columns.dropnabool, default True
Do not include columns whose entries are all NaN. If True, rows with a NaN value in any column will be omitted before computing margins.margins_namestr, default ‘All’
Name of the row / column that will contain the totals when margins is True.observedbool, default False
This only applies if any of the groupers are Categoricals. If True: only show observed values for categorical groupers. If False: show all values for categorical groupers.Deprecated since version 2.2.0: The default value of False is deprecated and will change to True in a future version of pandas.sortbool, default True
Specifies if the result should be sorted.New in version 1.3.0.Returns:
DataFrame
An Excel style pivot table.
43-2、参数

43-2-1、data(必须)必须是DataFrame类型,表示你要从中创建透视表的数据。

43-2-2、values(可选,默认值为None)指定需要聚合的列,默认情况下,所有数值列都将被聚合,如果你只关心某个或某些列,可以在这里指定它们。

43-2-3、index(可选,默认值为None)用于分组的列名列表或列名,结果DataFrame将使用这些列的值作为行索引。

43-2-4、columns(可选,默认值为None)用于分组的另一个列名列表或列名,如果指定了此参数,则这些列的值将用作结果DataFrame的列标题。

43-2-5、aggfunc(可选,默认值为'mean')一个函数或函数列表,用于聚合数据,默认是'mean',即计算平均值。你可以使用如sum、max、min、std(标准差)、first、last等内置函数,或者自定义函数。

43-2-6、fill_value(可选,默认值为None)用于替换结果DataFrame中缺失值的值,默认为None,即不填充缺失值。

43-2-7、margins(可选,默认值为False)布尔值,默认为False,如果为True,则会在结果DataFrame的末尾添加一个全行/全列,包含所有值的聚合(基于aggfunc)。

43-2-8、dropna(可选,默认值为True)布尔值,如果为False,则不会从结果中删除包含缺失值的行。注意,如果index或columns中包含缺失值,并且dropna=True,则这些缺失值会被忽略(即不会出现在结果DataFrame的索引或列标题中)。

43-2-9、margins_name(可选,默认值为'All')字符串,当margins=True时,用于命名全行/全列的标签。

43-2-10、observed(可选)pandas 1.1.0版本中引入的参数,用于控制如何处理未在数据中观察到的组合。如果为True(默认值在1.1.0之前的版本中是None,但在1.1.0及更高版本中变为True),则只包括在数据集中实际观察到的组合;如果为False,则会包括所有可能的组合,即使某些组合在数据中没有出现。

43-2-11、sort(可选,默认值为True)布尔值,如果为True,则结果DataFrame的行和列(如果指定了多个列作为索引/列)将按字典顺序排序;如果为False,则不进行排序。

43-3、功能

       根据一个或多个键(通常是DataFrame中的列)对数据进行分组,并对每个分组应用聚合函数,以创建一个新的DataFrame,这个新的DataFrame以不同的方式组织和汇总了原始数据,便于进行更深入的数据分析和可视化。

43-4、返回值

        返回值是一个新的DataFrame,它根据提供的参数对原始数据进行了重塑和汇总。这个新的DataFrame的行索引由index参数决定,列标题(如果指定了columns参数)也由该参数决定,而单元格中的值则是根据aggfunc参数指定的聚合函数计算得到的。

43-5、说明

        如果margins设置为True,则返回的DataFrame还会包含一个额外的全行或全列(取决于margins_name参数的值,默认为'All'),该行/列包含了所有行的聚合统计量。

43-6、用法
43-6-1、数据准备
43-6-2、代码示例
# 43、pandas.pivot_table函数
import pandas as pd
import numpy as np
# 创建一个示例数据集
data = {'Date': pd.date_range('2023-01-01', periods=6, freq='D'),'City': ['New York', 'Los Angeles', 'New York', 'Los Angeles', 'New York', 'Los Angeles'],'Category': ['A', 'A', 'B', 'B', 'A', 'B'],'Values': [100, 200, 150, 250, np.nan, 300]
}
df = pd.DataFrame(data)
print("原始数据集:")
print(df)
# 使用pivot_table重塑DataFrame
pivot_table = pd.pivot_table(data=df,values='Values',index=['Date', 'City'],columns='Category',aggfunc='mean',fill_value=0,margins=True,margins_name='All',dropna=True,sort=True
)
print("\npivot_table结果:")
print(pivot_table)
43-6-3、结果输出
# 43、pandas.pivot_table函数
# 原始数据集:
#         Date         City Category  Values
# 0 2023-01-01     New York        A   100.0
# 1 2023-01-02  Los Angeles        A   200.0
# 2 2023-01-03     New York        B   150.0
# 3 2023-01-04  Los Angeles        B   250.0
# 4 2023-01-05     New York        A     NaN
# 5 2023-01-06  Los Angeles        B   300.0# pivot_table结果:
# Category                             A           B    All
# Date                City
# 2023-01-01 00:00:00 New York     100.0    0.000000  100.0
# 2023-01-02 00:00:00 Los Angeles  200.0    0.000000  200.0
# 2023-01-03 00:00:00 New York       0.0  150.000000  150.0
# 2023-01-04 00:00:00 Los Angeles    0.0  250.000000  250.0
# 2023-01-06 00:00:00 Los Angeles    0.0  300.000000  300.0
# All                              150.0  233.333333  200.0

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

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

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

相关文章

【单片机毕业设计选题24059】-太阳能嵌入式智能充电系统研究

系统功能: 系统由太阳能电池板提供电源, 系统上电后显示“欢迎使用智能充电系统请稍后”, 两秒钟后进入主页面显示。 第一行显示太阳能电池板输入的电压值 第二行显示系统输出的电压值 第三行显示采集到的太阳能电池板温度 第四行显示设置的太阳能…

回归损失和分类损失

回归损失和分类损失是机器学习模型训练过程中常用的两类损失函数,分别适用于回归任务和分类任务。 回归损失函数 回归任务的目标是预测一个连续值,因此回归损失函数衡量预测值与真实值之间的差异。常见的回归损失函数有: 均方误差&#xff…

【UNI-APP】阿里NLS一句话听写typescript模块

阿里提供的demo代码都是javascript,自己捏个轮子。参考着自己写了一个阿里巴巴一句话听写Nls的typescript模块。VUE3的组合式API形式 startClient:开始听写,注意下一步要尽快开启识别和传数据,否则6秒后会关闭 startRecognition…

004-基于Sklearn的机器学习入门:回归分析(下)

本节及后续章节将介绍机器学习中的几种经典回归算法,包括线性回归,多项式回归,以及正则项的岭回归等,所选方法都在Sklearn库中聚类模块有具体实现。本节为下篇,将介绍多项式回归和岭回归等。 目录 2.3 多项式回归 2…

Point Cloud Library (PCL) for Python - pclpy 安装指南 (1)

以下所有的版本号务必按照说明安装。 1.安装 Python 3.6 https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.exe #或 百度网盘 2.确认 Python 版本为 3.6.x python #Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on…

给后台写了一个优雅的自定义风格的数据日志上报页面

highlight: atelier-cave-dark 查看后台数据日志是非常常见的场景,经常看到后台的小伙伴从服务器日志复制一段json数据字符串,然后找一个JSON工具网页打开,在线JSON格式化校验。有的时候,一些业务需要展示mqtt或者socket的实时信息展示,如果不做任何修改直接展示一串字符…

学习笔记——动态路由——IS-IS中间系统到中间系统(特性之路由撤销)

6、路由撤销 ISIS路由协议的路由信息是封装在LSP报文中的TLV中的,但是它对撤销路由的处理和OSPF的处理方式类似。 在ISIS中撤销一条路由实则是将接口下的ISIS关闭: 撤销内部路由: 在ISIS中路由信息是由IP接口TLV和IP内部可达性TLV共同来描…

合宙 Air780E模块 AT 指令 MQTT连接

固件说明 重启模块 //tx ATRESET//rx ATRESETOK ^boot.romv!\n RDY^MODE: 17,17E_UTRAN ServiceCGEV: ME PDN ACT 1NITZ: 2024/07/10,08:33:440,0查询模块版本信息 //tx ATCGMR//rx ATCGMRCGMR: "AirM2M_780E_V1161_LTE_AT"OK基本流程 4G模块支持MQTT和MQTT SSl协…

顶顶通呼叫中心中间件-私有化asrproxy配置热词模型

顶顶通呼叫中心中间件-私有化asrproxy配置热词模型 1、配置热词文件 将热词存在一个txt文件中,比如:hotword.txttxt文本里面写热词,一个热词一行,用utf8编码把热词文件上传到asrproxy程序目录中,路径:/dd…

读人工智能全传10深度思维

1. 深度思维 1.1. DeepMind 1.1.1. 深度思维 1.1.2. 2014年的员工不足25人 1.1.3. 深度思维公司公开宣称其任务是解决智能问题 1.1.4. 2014年谷歌收购DeepMind,人工智能突然成了新闻热点,以及商业热点 1.1.4.1. 收购报价高达4亿英镑 1.1.4.2. 深度…

头歌资源库(26)方格填数

一、 问题描述 二、算法思想 这是一个排列组合问题。我们可以使用动态规划的思想来求解。 假设dp[i]表示填入前i个位置的数字的方案数。考虑第i个位置,它有9种填法(0~9减去前一个位置上的数字),则有dp[i] 9 * dp[i-1]。由于第…

240711_昇思学习打卡-Day23-LSTM+CRF序列标注(2)

240711_昇思学习打卡-Day23-LSTMCRF序列标注(2) 今天记录LSTMCRF序列标注的第二部分。仅作简单记录 Score计算 首先计算正确标签序列所对应的得分,这里需要注意,除了转移概率矩阵𝐏外,还需要维护两个大小…

html5——CSS基础选择器

目录 标签选择器 类选择器 id选择器 三种选择器优先级 标签指定式选择器 包含选择器 群组选择器 通配符选择器 Emmet语法&#xff08;扩展补充&#xff09; 标签选择器 HTML标签作为标签选择器的名称&#xff1a; <h1>…<h6>、<p>、<img/> 语…

如何做好漏洞扫描工作提高网络安全

在数字化浪潮席卷全球的今天&#xff0c;企业数字化转型已成为提升竞争力、实现可持续发展的关键路径。然而&#xff0c;这一转型过程并非坦途&#xff0c;其中网络安全问题如同暗礁般潜伏&#xff0c;稍有不慎便可能引发数据泄露、服务中断乃至品牌信誉受损等严重后果。因此&a…

edge 学习工具包 math solver

简介 推荐微软推出的学习工具中的两项工具&#xff1a;数学求解器和 pdf 阅读器。 打开 edge 学习工具包的方法 &#xff1a;右上角三点-更多工具-学习工具包。 math solver 除了基础的计算求解外&#xff0c;还用图标展示公式&#xff0c;清晰直观。 地址&#xff1a;求解…

CentOS7使用yum命令报错

目录结构 前言使用yum命令&#xff0c;报错信息问题排查解决方案参考文章 前言 安装CentOS 7 虚拟机&#xff0c;使用yum命令报错&#xff0c;调查整理如下&#xff1a; 使用yum命令&#xff0c;报错信息 [rootlocalhost ~]# sudo yum install net-tools 已加载插件&#xff…

每天五分钟深度学习:向量化技术在神经网络中的应用

本文重点 向量化技术,简而言之,就是利用矩阵运算(而非传统的for循环)来执行大规模的计算任务。这种技术依赖于单指令多数据(SIMD)架构,允许一个指令同时对多个数据元素执行相同的操作。例如,在向量化加法中,不再需要逐个元素进行加法操作,而是可以一次性对整个向量执…

【电子通识】无源元件与有源元件的定义和区别是什么?

当提到构成电路的电子器件时,许多人可能会想到晶体管、电容器、电感器和电阻器等器件。一般情况下,我们使用的电子器件分为两大类,即“有源元件”和“无源元件”。 有源元件是主动影响(如放大、整流、转换等)所供给电能的元件。 无源元件是对所供给的电能执行被动…

流程图编辑框架LogicFlow-vue-ts和js

LogicFlow官网https://site.logic-flow.cn/LogicFlow 是一款流程图编辑框架&#xff0c;提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow支持前端研发自定义开发各种逻辑编排场景&#xff0c;如流程图、ER图、BPMN流程等。在工作审批配…

【zabbix7】开启HTTP authentication实现单点登录

开启HTTP authentication实现单点登录 一、新建http验证用户 htpasswd -c /etc/nginx/.htpasswd another_username # 在提示中输入密码二、新建Nginx配置文件 把zabbix.conf拷贝一份&#xff0c;然后修改listen监听的端口。 cp zabbx.conf zabbix_http.conf 每个location中新…