【Python】数据分析+数据挖掘——变量列的相关操作

news2024/12/23 5:35:52

前言

在Python和Pandas中,变量列操作指的是对DataFrame中的列进行操作,包括但不限于选择列、重命名列、添加新列、删除列、修改列数据等操作。这些操作可以帮助我们处理数据、分析数据和进行特征工程等。


变量列的相关操作

概述

下面将会列出一些基本的操作指令

# 查看df的前number条数据,不填数字默认为5
df.head(number)
# 查看df的后number条数据,不填数字默认为5
df.tail(number)
# 数据框的基本信息
df.info()
# 列出所有的变量名
df.columns
# 修改变量列名
df.rename()
# 筛选单个相关的变量名
df.column_name # 还有一个表达 df['column_name']
# 筛选多个相关的变量名
df[['column_name1','column_name2'...]]
# 删除变量列
df.drop()

案例数据表university_rank.csv

在这里插入图片描述

In[0]:

import pandas as pd # 引入pandas库
df = pd.read_csv("university_rank.csv") # 读取文件
df.head() # 显示文件头的记录(默认前五条)

out[0]:

大学名称地区学科领域排名依据
排名
1哈佛大学北美工程学术声誉
2牛津大学欧洲医学科研产出
3北京大学亚洲商学国际影响力
4悉尼大学大洋洲计算机科学教学质量
5圣保罗大学南美艺术学生满意度

In[1]:

df.tail() # 查看文件末的记录(默认后五条)

out[1]:

大学名称地区学科领域排名依据
排名
96圣保罗国立大学南美计算机科学研究生录取率
97约翰内斯堡大学非洲环境科学学术声誉
98麦吉尔大学北美艺术学生满意度
99伦敦政治经济学院欧洲法律国际影响力
100东京大学亚洲教育毕业生就业率

可以看的出来无论是df.head()还是df.tail(),如果里面不填写相关的参数,那么默认只查询5条记录。

那么接下来我们尝试一下给它们传入一些参数

In[2]:

number = 10 # 设置一个参数
df.head(number) # 传入参数

out[2]:

大学名称地区学科领域排名依据
排名
1哈佛大学北美工程学术声誉
2牛津大学欧洲医学科研产出
3北京大学亚洲商学国际影响力
4悉尼大学大洋洲计算机科学教学质量
5圣保罗大学南美艺术学生满意度
6约翰内斯堡大学非洲法律毕业生就业率
7麦吉尔大学北美教育校友网络
8伦敦政治经济学院欧洲经济学国际化程度
9东京大学亚洲社会科学研究生录取率
10澳大利亚国立大学大洋洲环境科学科研经费

注意:在jupyter notebook中默认情况下,如果DataFrame的行数超过一定阈值,默认情况下,Jupyter Notebook 会自动省略 DataFrame 中的行,显示前面几行和最后几行,并用省略号 ... 表示省略的行。这个阈值默认是 60 行,也就是说,当 DataFrame 的行数超过 60 行时,Jupyter Notebook 会自动省略中间的部分,只显示前几行和最后几行数据,您可以使用pd.set_option来调整Jupyter Notebook中DataFrame的显示行数和列数的限制。

# 设置显示的最大行数和列数为None,表示不限制
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)

In[3]:

df.info() # 快速了解 DataFrame数据是否有缺失值、了解数据类型是否正确,以及预估内存占用情况。

out[3]:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 100 entries, 1 to 100
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   大学名称    100 non-null    object
 1   地区      100 non-null    object
 2   学科领域    100 non-null    object
 3   排名依据    100 non-null    object
dtypes: object(4)
memory usage: 3.9+ KB

变量列的重命名

案例数据表university_rank.csv

在这里插入图片描述

我们先看一下DataFrame的列分别有什么,使用df.columns函数来查看

In[4]:

df = pd.read_csv("university.csv") # 读取文件
df.columns # 展示该DataFrame的列名

out[4]:

Index(['大学名称', '地区', '学科领域', '排名依据'], dtype='object')

在Pandas中有很多函数的作用都是重复的,故不需要掌握全部有关变量列重命名的函数,在这个案例中可以使用df.columns来修改列的名称,只需要给其赋值一个(列表)list就行

In[5]:

df.columns = ['university_name', 'site', 'area', 'rank_info'] # 更改列名
df # 展示新DataFrame

out[5]:

university_namesitearearank_info
排名
1哈佛大学北美工程学术声誉
2牛津大学欧洲医学科研产出
3北京大学亚洲商学国际影响力
4悉尼大学大洋洲计算机科学教学质量
5圣保罗大学南美艺术学生满意度
...............
96圣保罗国立大学南美计算机科学研究生录取率
97约翰内斯堡大学非洲环境科学学术声誉
98麦吉尔大学北美艺术学生满意度
99伦敦政治经济学院欧洲法律国际影响力
100东京大学亚洲教育毕业生就业率

100 rows × 4 columns

这里如果要使用df.columns = []来修改列名,则必须的要给出的list的大小与原DataFrame的变量列的数量一致,所以这里如果变量列很多,但是需要修改的列名却只有若干个的话,建议使用df.rename()来操作

df.rename(
        # 修改列标签的字典
        columns = {
        'old_attribute1':'new_attribute1',
        'old_attribute2':'new_attribute2',
        ...
        },
        # 修改行标签的字典
        index
        # 是否在原DataFrame上修改
        inplace = False
)

In[6]:

new_df = df.rename(
    columns={
        'university_name': '学校名称',
        'site': '地点'
    }
) # 不在原df进行列的重命名
print(new_df) # 打印新的df
print(df) # 打印旧的df

out[6]:

         学校名称   地点   area rank_info
排名                                 
1        哈佛大学   北美     工程      学术声誉
2        牛津大学   欧洲     医学      科研产出
3        北京大学   亚洲     商学     国际影响力
4        悉尼大学  大洋洲  计算机科学      教学质量
5       圣保罗大学   南美     艺术     学生满意度
..        ...  ...    ...       ...
96    圣保罗国立大学   南美  计算机科学    研究生录取率
97    约翰内斯堡大学   非洲   环境科学      学术声誉
98      麦吉尔大学   北美     艺术     学生满意度
99   伦敦政治经济学院   欧洲     法律     国际影响力
100      东京大学   亚洲     教育    毕业生就业率

[100 rows x 4 columns]
    university_name site   area rank_info
排名                                       
1              哈佛大学   北美     工程      学术声誉
2              牛津大学   欧洲     医学      科研产出
3              北京大学   亚洲     商学     国际影响力
4              悉尼大学  大洋洲  计算机科学      教学质量
5             圣保罗大学   南美     艺术     学生满意度
..              ...  ...    ...       ...
96          圣保罗国立大学   南美  计算机科学    研究生录取率
97          约翰内斯堡大学   非洲   环境科学      学术声誉
98            麦吉尔大学   北美     艺术     学生满意度
99         伦敦政治经济学院   欧洲     法律     国际影响力
100            东京大学   亚洲     教育    毕业生就业率

[100 rows x 4 columns]

若设置inplace = True则在原df上进行修改,因此就不需要进行赋值操作了。

In[7]:

df.rename(
    columns={
        'university_name': '学校名称',
        'site': '地点',
        'area': '学科领域',
        'rank_info': '排名依据'
    },
    inplace=True
) # 在原df进行修改
print(df) # 打印新df

out[7]:

         大学名称   地区   学科领域    排名依据
排名                               
1        哈佛大学   北美     工程    学术声誉
2        牛津大学   欧洲     医学    科研产出
3        北京大学   亚洲     商学   国际影响力
4        悉尼大学  大洋洲  计算机科学    教学质量
5       圣保罗大学   南美     艺术   学生满意度
..        ...  ...    ...     ...
96    圣保罗国立大学   南美  计算机科学  研究生录取率
97    约翰内斯堡大学   非洲   环境科学    学术声誉
98      麦吉尔大学   北美     艺术   学生满意度
99   伦敦政治经济学院   欧洲     法律   国际影响力
100      东京大学   亚洲     教育  毕业生就业率

[100 rows x 4 columns]

补充:

有时候df.columns函数会搭配tolist函数

column_list = df.columns.tolist() 
print(column_list)

变量列的筛选

在Pandas中对变量列筛选的函数冗余度很高,在这里只详细介绍一下最简单的方法

# 筛选单个列
df.column_name # column_name是您想要筛选的列标签
# 筛选多个列
df[['column_name1','columns_name2']]

案例数据表university_rank.csv

在这里插入图片描述

In[8]:

df = pd.read_csv("university_csv") # 读取案例文件
df.学校名称 # 使用df.column_name来筛选单列

out[7]:

排名
1          哈佛大学
2          牛津大学
3          北京大学
4          悉尼大学
5         圣保罗大学
         ...   
96      圣保罗国立大学
97      约翰内斯堡大学
98        麦吉尔大学
99     伦敦政治经济学院
100        东京大学
Name: 学校名称, Length: 100, dtype: object

注意这里的df.column_name返回的数据类型结果是numpy中的Series

In[9]:

type(df.学校名称)

out[9]:

pandas.core.series.Series

其实不用 . 运算符也可以进行单列的筛选,使用df['column_name']拥有一样的效果,不过一般在对新增变量列的时候才会使用,也就是说当使用.来进行单列筛选的时候必须保证该DataFrame有该列,而使用df.["column_name"]则不需要。

In[10]:

df['学校名称']

out[10]:

排名
1          哈佛大学
2          牛津大学
3          北京大学
4          悉尼大学
5         圣保罗大学
         ...   
96      圣保罗国立大学
97      约翰内斯堡大学
98        麦吉尔大学
99     伦敦政治经济学院
100        东京大学
Name: 学校名称, Length: 100, dtype: object

进行多列的筛选的时候需要使用列表嵌套

In[11]:

df[['学校名称', '排名依据']]

out[11]:

学校名称排名依据
排名
1哈佛大学学术声誉
2牛津大学科研产出
3北京大学国际影响力
4悉尼大学教学质量
5圣保罗大学学生满意度
.........
96圣保罗国立大学研究生录取率
97约翰内斯堡大学学术声誉
98麦吉尔大学学生满意度
99伦敦政治经济学院国际影响力
100东京大学毕业生就业率

100 rows × 2 columns

补充:

除了使用方括号 [] 运算符来筛选列,还可以使用 loc 属性、使用 iloc 属性

# loc:
# 假设 df 是一个 DataFrame,'column_name' 是您想要筛选的列标签
selected_column = df.loc[:, 'column_name'] # 筛选column_name列以及其前面的所有列

# iloc
# 假设 df 是一个 DataFrame,column_index 是您想要筛选的列的索引(从 0 开始)
selected_column = df.iloc[:, column_index]

删除变量列

要删除 DataFrame 中的变量列,可以使用 drop() 方法或 del 关键字。下面主要介绍这两种方法~

df.drop(
	# 要删除的行索引或列标签。可以是单个值或一个包含多个值的列表
	labels = [],
    # 需要删除的列名的列表
    columns = [],
    # 用于指定要删除的行索引。可以是单个值或一个包含多个值的列表。与 axis=0 一起使用
    index = [],
    # 指定要删除的是行还是列。默认为 0,即删除行。如果要删除列,则应设置为 1
    axis = 0
    # 是否在在df上进行修改
    inplace = False
)

案例数据表university_rank.csv

在这里插入图片描述

In[12]:

df = db
df.drop(
    columns=['地区', '学科领域']
)

out[12]:

大学名称排名依据
排名
1哈佛大学学术声誉
2牛津大学科研产出
3北京大学国际影响力
4悉尼大学教学质量
5圣保罗大学学生满意度
.........
96圣保罗国立大学研究生录取率
97约翰内斯堡大学学术声誉
98麦吉尔大学学生满意度
99伦敦政治经济学院国际影响力
100东京大学毕业生就业率

100 rows × 2 columns

使用 del 关键字则是直接在原始 DataFrame 上进行删除,也就是在df.drop()中inplace参数默认为True


添加变量列

如果是对已有的变量列进行赋值则可以直接使用df.column_name = ?来对已有的column_name进行赋值

如果是想创建一个变量类则需要使用df[new_column_name] = '?' 来创建’new_column_name’,并且全部赋值成'?'

案例数据表university_rank.csv

在这里插入图片描述

In[13]:

df = pd.read_csv("university_rank.csv") # 读取案例数据
df # 展示案例数据

out[13]:

大学名称排名地区学科领域排名依据
0哈佛大学1北美工程学术声誉
1牛津大学2欧洲医学科研产出
2北京大学3亚洲商学国际影响力
3悉尼大学4大洋洲计算机科学教学质量
4圣保罗大学5南美艺术学生满意度
..................
95圣保罗国立大学96南美计算机科学研究生录取率
96约翰内斯堡大学97非洲环境科学学术声誉
97麦吉尔大学98北美艺术学生满意度
98伦敦政治经济学院99欧洲法律国际影响力
99东京大学100亚洲教育毕业生就业率

100 rows × 5 columns

In[14]:

df.地区 = "未知" # 使用`.`运算符进行对已有的变量列进行赋值
df # 展示修改后的表

out[14]:

大学名称排名地区学科领域排名依据
0哈佛大学1未知工程学术声誉
1牛津大学2未知医学科研产出
2北京大学3未知商学国际影响力
3悉尼大学4未知计算机科学教学质量
4圣保罗大学5未知艺术学生满意度
..................
95圣保罗国立大学96未知计算机科学研究生录取率
96约翰内斯堡大学97未知环境科学学术声誉
97麦吉尔大学98未知艺术学生满意度
98伦敦政治经济学院99未知法律国际影响力
99东京大学100未知教育毕业生就业率

100 rows × 5 columns

使用df['column_name']来对原有的列进行赋值或者创建一个新的列

In[15]:

df = pd.read_csv("university_rank.csv") # 重新读一下数据表
df["入学人数"] = "未知" # 创建一个新的列,并且赋值为"未知"
df # 展示一下新的df

out[15]:

大学名称排名地区学科领域排名依据入学人数
0哈佛大学1北美工程学术声誉未知
1牛津大学2欧洲医学科研产出未知
2北京大学3亚洲商学国际影响力未知
3悉尼大学4大洋洲计算机科学教学质量未知
4圣保罗大学5南美艺术学生满意度未知
.....................
95圣保罗国立大学96南美计算机科学研究生录取率未知
96约翰内斯堡大学97非洲环境科学学术声誉未知
97麦吉尔大学98北美艺术学生满意度未知
98伦敦政治经济学院99欧洲法律国际影响力未知
99东京大学100亚洲教育毕业生就业率未知

100 rows × 6 columns

使用df['column_name']的方法虽然简单,但是只能在列的末尾添加新的列,下面将介绍一个新的添加变量列的方法。

DataFrame支持插入的变量列自定义位置、列名、值、是否重名等,具体使用方法为df.insert

df.insert(
        # 插入变量列的索引,第一个变量列为0,依次类推
        loc
        # 插入变量列的名称,是一个字符串
        column
        # 变量值,可以是单个标量值(如整数、浮点数、字符串等),也可以是一个与 DataFrame 行数相同长度的列表或 Series
        value
        # 是否允许重名
        allow_duplicate = False
)

In[16]:

df = pd.read_csv("university_rank.csv") # 重新读入一下案例数据表
df.insert(loc=2, column="创办时间", value="未知") # 使用df.insert来插入新列表
df

out[16]:

大学名称排名创办时间地区学科领域排名依据
0哈佛大学1未知北美工程学术声誉
1牛津大学2未知欧洲医学科研产出
2北京大学3未知亚洲商学国际影响力
3悉尼大学4未知大洋洲计算机科学教学质量
4圣保罗大学5未知南美艺术学生满意度
.....................
95圣保罗国立大学96未知南美计算机科学研究生录取率
96约翰内斯堡大学97未知非洲环境科学学术声誉
97麦吉尔大学98未知北美艺术学生满意度
98伦敦政治经济学院99未知欧洲法律国际影响力
99东京大学100未知亚洲教育毕业生就业率

100 rows × 6 columns


变量列的四则运算

对DataFrame类型数据进行运算时需要考虑到库支持类型是否满足运行需求,常用的库有math\numpy

numpy库中的运算可以支持Series类型数据而math库中并不支持,需要使用别的函数来进行类型转换

注:在添加变量列的时候也可以进行四则运算

案例数据表university_rank.csv

在这里插入图片描述

In[17]:

import numpy as np # 为了进行运算,先导入numpy库
df = pd.read_csv("university_rank.csv") # 读取案例数据表
df["入学人数"] = 1000 # 在列末尾新增一个变量列并赋值1000
df.入学人数 = np.sqrt(df.入学人数) # 对新增的变量列进行运算
df # 展示运算后的数据表

out[17]:

大学名称排名地区学科领域排名依据入学人数
0哈佛大学1北美工程学术声誉31.622777
1牛津大学2欧洲医学科研产出31.622777
2北京大学3亚洲商学国际影响力31.622777
3悉尼大学4大洋洲计算机科学教学质量31.622777
4圣保罗大学5南美艺术学生满意度31.622777
.....................
95圣保罗国立大学96南美计算机科学研究生录取率31.622777
96约翰内斯堡大学97非洲环境科学学术声誉31.622777
97麦吉尔大学98北美艺术学生满意度31.622777
98伦敦政治经济学院99欧洲法律国际影响力31.622777
99东京大学100亚洲教育毕业生就业率31.622777

100 rows × 6 columns

如果不想在原来的DataFrame上进行修改,则可以使用df.assign

In[18]:

df = pd.read_csv("university_rank.csv")
df["入学人数"] = 10000
df1 = df.assign(入学人数=np.sqrt(df.入学人数))
print(df)
print(df1)

out[18]:

        大学名称   排名   地区   学科领域    排名依据   入学人数
0       哈佛大学    1   北美     工程    学术声誉  10000
1       牛津大学    2   欧洲     医学    科研产出  10000
2       北京大学    3   亚洲     商学   国际影响力  10000
3       悉尼大学    4  大洋洲  计算机科学    教学质量  10000
4      圣保罗大学    5   南美     艺术   学生满意度  10000
..       ...  ...  ...    ...     ...    ...
95   圣保罗国立大学   96   南美  计算机科学  研究生录取率  10000
96   约翰内斯堡大学   97   非洲   环境科学    学术声誉  10000
97     麦吉尔大学   98   北美     艺术   学生满意度  10000
98  伦敦政治经济学院   99   欧洲     法律   国际影响力  10000
99      东京大学  100   亚洲     教育  毕业生就业率  10000

[100 rows x 6 columns]
        大学名称   排名   地区   学科领域    排名依据   入学人数
0       哈佛大学    1   北美     工程    学术声誉  100.0
1       牛津大学    2   欧洲     医学    科研产出  100.0
2       北京大学    3   亚洲     商学   国际影响力  100.0
3       悉尼大学    4  大洋洲  计算机科学    教学质量  100.0
4      圣保罗大学    5   南美     艺术   学生满意度  100.0
..       ...  ...  ...    ...     ...    ...
95   圣保罗国立大学   96   南美  计算机科学  研究生录取率  100.0
96   约翰内斯堡大学   97   非洲   环境科学    学术声誉  100.0
97     麦吉尔大学   98   北美     艺术   学生满意度  100.0
98  伦敦政治经济学院   99   欧洲     法律   国际影响力  100.0
99      东京大学  100   亚洲     教育  毕业生就业率  100.0

[100 rows x 6 columns]

如果是用math库,那么就需要使用apply进行中间转化,将Series转换成math库支持的类型进行运算

In[19]:

import math # 使用math库中的运算函数
df = pd.read_csv("university_rank.csv")
df["入学人数"] = 10000
df.入学人数 = df.入学人数.apply(math.sqrt) # 需要使用apply函数进行类型转换
df # 展示新数据表

out[19]:

大学名称排名地区学科领域排名依据入学人数
0哈佛大学1北美工程学术声誉100.0
1牛津大学2欧洲医学科研产出100.0
2北京大学3亚洲商学国际影响力100.0
3悉尼大学4大洋洲计算机科学教学质量100.0
4圣保罗大学5南美艺术学生满意度100.0
.....................
95圣保罗国立大学96南美计算机科学研究生录取率100.0
96约翰内斯堡大学97非洲环境科学学术声誉100.0
97麦吉尔大学98北美艺术学生满意度100.0
98伦敦政治经济学院99欧洲法律国际影响力100.0
99东京大学100亚洲教育毕业生就业率100.0

100 rows × 6 columns

假如是对所有的cell进行运算而不是单独的几列进行运算,那么就可以使用df.applymap方法

In[20]:

df[["排名", "入学人数"]].applymap(math.sqrt)

out[20]:

排名入学人数
01.00000010.0
11.41421410.0
21.73205110.0
32.00000010.0
42.23606810.0
.........
959.79795910.0
969.84885810.0
979.89949510.0
989.94987410.0
9910.00000010.0

100 rows × 2 columns


结束语

如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!

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

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

相关文章

对github项目提PR 请求的保姆级教程——以修改casdoor项目的swagger文档为例,干货满满

Github入门教程可以在腾讯犀牛鸟开源人才培养计划里面学习。 PR简介 PR(Pull Request) 即拉取请求,是 GitHub 上进行协同开发的一种非常常用的方式。 它的基本流程是&#xff1a; 开发者fork一个开源项目的代码库,将其克隆到本地。在本地对代码进行修改、添加新功能等。将本…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平教程

详情点击链接&#xff1a;基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平 一&#xff0c;空间数据获取与制图 1.1 软件安装与应用 1.2 空间数据 1.3海量空间数据下载 1.4 ArcGIS软件快…

MySQL数据库(七)

目录 一、联合查询 1.1内连接 1.2外连接 1.3自连接 1.4子查询 1.5合并查询 一、联合查询 实际开发中往往数据来自不同的表&#xff0c;所以需要多表联合查询。多表查询是对多张表的数据取笛卡尔积&#xff1a; 下面进行多表查询的练习&#xff0c;对应的在表的设计与数据插入中…

练习时长两年半的网络安全防御“first”

1.网络安全常识及术语 下边基于这次攻击演示我们介绍一下网络安全的一些常识和术语。 资产 任何对组织业务具有价值的信息资产&#xff0c;包括计算机硬件、通信设施、 IT 环境、数据库、软件、文档资料、信息服务和人员等。 网络安全 网络安全是指网络系统的硬件、软件及…

Stable Diffusion - 扩展 Roop 换脸 (Face Swapping) 插件的配置与使用

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131856141 官网&#xff1a;GitHub - roop&#xff0c;参考论文&#xff1a;RobustSwap: A Simple yet Robust Face Swapping Model against Attr…

kubesphere部署谷粒商城, nginx无法路由到网关服务

使用kubesphere部署谷粒商城&#xff0c;微服务和nginx均已部署成功&#xff0c;其中ingress-controller已安装。但是nginx无法路由到网关服务。使用域名gulimall.com访问谷粒商城&#xff0c;默认访问的是nginx首页&#xff0c;路由失败。 校对nginx的配置信息&#xff0c;上游…

MySQL数据库第十课-------join连接的再续------强强连锁

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com __________________________________________________________ 目录 join连接 内连接 左连接 右连接 外连接 其他连接 ______________________________________________________________ 作…

Unity 实用插件篇 | Tutorial Master 2 游戏引导教程 快速上手

前言【Unity 实用插件篇】 | Tutorial Master 2 游戏引导教程 快速上手一、Tutorial Master 2 介绍1.1 基本概念1.2 相关链接1.3 效果展示二、搭建简易测试环境三、制作简易引导教程3.1 挂载一个Tutorial Master Manager脚本3.2 设置引导预制体3.3 创建一个引导教程3.4 添加引导…

SpringBoot系列--【如何集成prometheus?】

如何集成prometheus&#xff1f; 1.添加pom依赖 注意&#xff1a;prometheus的版本依赖springboot版本&#xff0c;示例使用的springboot版本的2.3.X. 2.配置文件添加配置 3.主启动类添加如下配置 4.验证端点 SpringBoot项目到这里就配置完成了&#xff0c;启动项目&#xff0c…

将请求参数数据推送至RabbitMQ队列中并且捕捉消息没有到达交换机的异常

1&#xff1a;自定义mq信息类&#xff08;我的交换这些信息都从nacos上直接取的&#xff0c;怎么从nacos取配置信息看上篇文章&#xff09;&#xff1a; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor;impo…

Windows10 + Mingw + Paho Mqtt C/C++编译使用

文章目录 1、前言2、按照Mingw环境3、编译paho c3.1、ssl验证大坑3.2、解决方法3.3、mingw32-make过程出现报错3.4、继续出错3.5、编译成功 4、编译paho c5、Qt使用paho mqtt库5.1、编码 1、前言 起初使用的是Cmake Visual Studio 2019进行编译&#xff0c;使用的时候出现ssl错…

《Java核心技术大会2023》——AIC松鼠活动第一期

共同深入探讨 Java 生态&#xff01;直播预约&#xff1a;视频号“IT阅读排行榜” 大会简介 人工智能在22年、23年的再次爆发让Python成为编程语言里最大的赢家&#xff1b;云原生的持续普及令Go、Rust等新生的语言有了进一步叫板传统技术体系的资本与底气。我们必须承认在近…

【搜索引擎Solr】配置 Solr 以获得最佳性能

Apache Solr 是广泛使用的搜索引擎。有几个著名的平台使用 Solr&#xff1b;Netflix 和 Instagram 是其中的一些名称。我们在 tajawal 的应用程序中一直使用 Solr 和 ElasticSearch。在这篇文章中&#xff0c;我将为您提供一些关于如何编写优化的 Schema 文件的技巧。我们不会讨…

基于linux下的高并发服务器开发(第二章)- 2.14 管道的读写特点和管道设置为非阻塞

管道的读写特点&#xff1a; 使用管道时&#xff0c;需要注意以下几种特殊的情况&#xff08;假设都是阻塞I/O操作&#xff09; 1.所有的指向管道写端的文件描述符都关闭了&#xff08;管道写端引用计数为0&#xff09;&#xff0c;有进程从管道的读端读数据&#xff0c;那么管…

SpringBoot系列--【K8s中的SpringBoot如何给应用配置健康检查?】

K8s中的SpringBoot如何给应用配置健康检查&#xff1f; 1.健康检查的必要性 作为业务监控的首要目标&#xff0c;服务的存活性&#xff0c;也就是它的健康状况&#xff0c;成为了重中之重&#xff0c;容器云平台可以根据健康检查策略来对服务实例进行自动重启或从负载均衡中摘除…

IP-GUARD如何在客户端上进行审批管理?

如何在客户端上进行审批管理&#xff1f; 4 实现步骤如下&#xff1a; 1、先在控制台-加密-加密授权设置-常规中&#xff0c;勾选允许登录审批管理平台开启客户端登录审批管理平台的功能。 2、然后客户端电脑&#xff0c;右键加密托盘登录审批账号后即可正常审批。 如何实现特…

MySQL 8.1.0正式发布!

早在五年前&#xff0c;MySQL 8.0 就发布了第一个 GA 版本&#xff0c;此后一直在这个版本进行更新&#xff0c;而没有升级大版本。最近 MySQL 官方终于发布了 MySQL 8.1.0 和 MySQL 8.0.34&#xff0c;分别代表了创新版和长期支持版。 新版本中与 SQL 相关的改进包括保存执行计…

用C++在Windows桌面上打个叉❌

我们的目标是&#xff0c;只写一二十行代码&#xff0c;用 Windows自带的原生接口&#xff0c;强行在桌面上打个大红❌&#xff0c;如图&#xff1a; 写了大半年C&#xff0c;天天和“黑乎乎” 的小窗口你侬我侬&#xff1f;赶紧来打开一扇“Windows”&#xff0c;从窗口跳进全…

数据库系统课程笔记

初步认识数据库系统 schema 英 /ˈskiːmə/ 美 /ˈskiːmə/ n.(计划或理论的)提要&#xff0c;纲要 关系模型之基本概念 关系和表的差别 关系的特性 什么是sql 创建数据库&#xff08;编写脚本&#xff09; 创建表格语法&#xff08;编写脚本&#xff09; 修改表的结构语法 …

微服务Day4——Docker

一、什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署&#xff0c;环境不一定一致&#xff0c;会…