数据可视化(四):Pandas技术的高级操作案例,豆瓣电影数据也能轻松分析!

news/2024/5/6 21:31:52

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊!

喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!"

数据可视化(四):Pandas技术的高级操作案例,豆瓣电影数据也能轻松分析!

目录

    • 数据可视化(四):Pandas技术的高级操作案例,豆瓣电影数据也能轻松分析!
    • 1. 创建一个Series
    • 2. 采用以下值和索引创建Series
    • 3. 显示DataFrame列
    • 4. 采用loc对DataFrame行进行切片
    • 5. 采用iloc对DataFrame行进行切片
    • 6. 采用loc对DataFrame进行行和列切片
    • 7. 采用iloc对DataFrame进行行和列切片
    • 8. iloc 和 loc 的区别
    • 9. 使用时间索引创建空 DataFrame,包含'A'、'B'、'C'三列,用0值填充
    • 10. 改变 DataFrame 行、列的排序
    • 11. 更改 DataFrame 指定列的数据类型
    • 12. 两个 DataFrame 相加
    • 13. 删除数据
    • 14. 获取行、列的平均值
    • 15. 计算行、列的和
    • 16. 对索引值进行排序
    • 17. 对列名进行排序
    • 18. 对数据进行排序
    • 19. map()、applymap()使用
    • 20. 采用“豆瓣电影数据”进行分析
    • 附录:

import numpy as np
import pandas as pd

1. 创建一个Series

名字为Countries

内容由以下列表组成

[“India”, “Canada”, “Germany”]

# 编程
import pandas as pd 
import numpy as np# 创建一个列表  
country_list = ["India", "Canada", "Germany"]  # 使用列表创建一个Series对象,并设置名字为"Countries"  
countries_series = pd.Series(country_list, name="Countries")  # 打印Series  
print(countries_series)

2. 采用以下值和索引创建Series

values = [“India”, “Canada”, “Australia”, “Japan”, “Germany”, “France”]

inds = [“IND”, “CAN”, “AUS”, “JAP”, “GER”, “FRA”]

# 编程
import pandas as pd  # 定义值和索引  
values = ["India", "Canada", "Australia", "Japan", "Germany", "France"]  
inds = ["IND", "CAN", "AUS", "JAP", "GER", "FRA"]  # 使用指定的值和索引创建Series对象  
countries_series = pd.Series(values, index=inds)  # 打印Series  
print(countries_series)

3. 显示DataFrame列

数据如下创建:

df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])
# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])# 1、显示Score列
df[["Score"]]

# 2、显示Color、Score两列
df[["Color","Score"]]# 3、显示为整数值的列
int_columns = df.select_dtypes(include=['int64']).columns
# 打印整数类型的列
int_columns# 4、显示非字符串的列
non_string_columns = df.select_dtypes(exclude=[object]).columns  
print("非字符串的列:")  
print(non_string_columns)

4. 采用loc对DataFrame行进行切片

数据如下创建:

df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])

采用loc切片

# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])# 1、显示Penelope行
df.loc[["Penelope"],:]# 2、显示Cornelia, Jane, Dean三行
df.loc[["Cornelia","Jane","Dean"],:]

# 3、显示Aaron到Dean行(包括Dean行)
df.loc["Aaron":"Dean",:]

5. 采用iloc对DataFrame行进行切片

数据如下创建:

df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])

采用iloc切片

# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])# 1、显示Penelope行
df.iloc[[3],:]# 2、显示Cornelia, Jane, Dean三行
df.iloc[[3,0,4],:]# 3、显示Aaron到Dean行(包括Dean行)
df.iloc[2:5,:]

6. 采用loc对DataFrame进行行和列切片

采用loc切片

# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])# 1、选取Penelope行,Color、Height两列
df.loc[["Penelope"],["Color","Height"]]# 2、选取Penelope到Christina三行,Color到Height三列
df.loc[["Penelope"],["Color","Height"]]# 3、选取Jane、Penelope、Cornelia三行,Age、State两列
df.loc[["Jane","Penelope","Cornelia"],["Age","State"]]

7. 采用iloc对DataFrame进行行和列切片

采用iloc切片

# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])# 1、选取Penelope行,Color、Height两列
df.iloc[[3],[1,3]]# 2、选取Penelope到Christina三行,Color到Height三列
df.iloc[3:6,1:4]# 3、选取Jane、Penelope、Cornelia三行,Age、State两列
df.iloc[[0,3,6],[0,5]]

注意loc左闭右闭,iloc左闭右开

8. iloc 和 loc 的区别

  • loc可以进行布尔选择
# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])display(df)# 1、返回Age小于30的Age、Color、Height三列,采用loc
df.loc[ df["Age"] < 30,["Age","Color","Height"]]# 2、返回Age小于30的Age、Color、Height三列,采用iloc
selected_data = df[df["Age"]<30].iloc[:, [0, 1, 3]]  
selected_data

# 3、返回Height在120到170之间,Score大于3的所有列,采用loc
df[ (df["Height"]<=170) & (df["Height"] >=120)].loc[ df["Score"]>3, :]# 4、返回Height在120到170之间,Score大于3的所有列,采用iloc
# 重置索引
df_new = df.reset_index()
df_new# 创建Height在120到170之间且Score大于3的布尔索引  
height_condition = (df_new['Height'] >= 120) & (df_new['Height'] <= 170)  
score_condition = df_new['Score'] > 3  
combined_condition = height_condition & score_condition  # 使用布尔索引获取满足条件的行的标签(即索引)  
indices = df_new[combined_condition].index  # 使用iloc和这些索引来选择满足条件的所有行和所有列  
selected_data = df_new.iloc[indices]  # 打印选取的数据  
selected_data.set_index("index")

9. 使用时间索引创建空 DataFrame,包含’A’、‘B’、'C’三列,用0值填充

提示:pd.date_range()函数;datatime库;pd.fillna()函数

# 编程import datetime
# 创建一个日期范围,比如从2024年1月1日到2024年1月5日  
date_range = pd.date_range(start='2024-01-01', end='2024-01-05')  # 使用日期范围作为索引,并用0初始化'A', 'B', 'C'列  
df = pd.DataFrame(0, index=date_range, columns=['A', 'B', 'C'])  # 打印结果  
df

10. 改变 DataFrame 行、列的排序

# 编程data = {'C':[0,1,2], 'A':[6,8,10], 'B':[3,-1,7]}
df = pd.DataFrame(data,index=['c','b','a'])
display(df)# 1、改变列顺序从C A B到A B C
df[["A","B","C"]]

# 编程data = {'C':[0,1,2], 'A':[6,8,10], 'B':[3,-1,7]}
df = pd.DataFrame(data,index=['c','b','a'])
display(df)# 2、改变行顺序从c b a到a b c
df.loc[["a","b","c"],:]

11. 更改 DataFrame 指定列的数据类型

# 编程df = pd.DataFrame(data = {'Age': [30, 20, 22, 40, 32, 28, 39], 'Color': ['Blue', 'Green', 'Red', 'White', 'Gray', 'Black', 'Red'], 'Food': ['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'Height': [165, 70, 120, 80, 180, 172, 150], 'Score': [4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index = ['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia'])display(df)
display(df.dtypes)# 1、将Height列数据从int64改为float64
df["Height"] = df["Height"].astype(np.float64)
df.dtypes# 2、将Score列数据从float64改为str
df["Score"] = df["Score"].astype(str)
df.dtypes

12. 两个 DataFrame 相加

# 编程df1 = pd.DataFrame({'Age': [30, 20, 22, 40], 'Height': [165, 70, 120, 80], 'Score': [4.6, 8.3, 9.0, 3.3], 'State': ['NY', 'TX', 'FL', 'AL']}, index=['Jane', 'Nick', 'Aaron', 'Penelope'])df2 = pd.DataFrame({'Age': [32, 28, 39], 'Color': ['Gray', 'Black', 'Red'],'Food': ['Cheese', 'Melon', 'Beans'],'Score': [1.8, 9.5, 2.2], 'State': ['AK', 'TX', 'TX']}, index=['Dean', 'Christina', 'Cornelia'])# df1和df2合,按列排序
# axis=0, df1和df2合,按列排序
df3 = pd.concat([df1,df2],axis=0)
df3

13. 删除数据

# 编程df = pd.DataFrame({'Country': ['China', 'China', 'India', 'India', 'America','Japan', 'China', 'India'], 'Income': [10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000], 'Age': [50, 43, 34, 40, 25, 25, 45, 32]
})
display(df)# 1、删除第3行
df1 = df.drop(2)
df1

# 2、删除Income列
column_to_drop = 'Income'  # 替换为实际的列名  
df2 = df.drop(columns=[column_to_drop],axis=1)
df2# 3、删除Age列,原DataFrame发生改变,提示inplace参数
df.drop("Age",axis=1,inplace=True)
df

14. 获取行、列的平均值

# 编程df = pd.DataFrame([[10, 20, 30, 40], [7, 14, 21, 28], [5, 5, 0, 0]],columns=['Apple', 'Orange', 'Banana', 'Pear'],index=['Basket1', 'Basket2', 'Basket3'])
display(df)# 1、按列统计均值
df.mean()# 2、按行统计均值
df.mean(axis=1)# 3、增加一列'Basket mean',该列为行均值
df["Basket mean"] = df.mean(axis=1)
df# 4、增加一行'Fruit mean',该行为列均值
df.loc["Fruit mean",:] = df.mean()
df

15. 计算行、列的和

# 编程df = pd.DataFrame([[10, 20, 30, 40], [7, 14, 21, 28], [5, 5, 0, 0]],columns=['Apple', 'Orange', 'Banana', 'Pear'],index=['Basket1', 'Basket2', 'Basket3'])
display(df)# 1、按列统计总和
df.sum()# 2、按行统计总和
df.sum(axis=1)# 3、增加一列'Basket sum',该列为行总和
df["Basket sum"] = df.sum(axis=1)
df# 4、增加一行'Fruit sum',该行为列总和
df.loc["Fruit sum",:] = df.sum()
df

16. 对索引值进行排序

# 编程df = pd.DataFrame({'DateOfBirth': ['1986-11-11', '1999-05-12', '1976-01-01','1986-06-01', '1983-06-04', '1990-03-07', '1999-07-09'],'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index=['Jane', 'Pane', 'Aaron', 'Penelope', 'Frane', 'Christina', 'Cornelia'])# 1、对索引进行排序
df.sort_index(inplace=True)  
df# 2、按降序对索引值进行排序
df.sort_index(ascending=False,inplace=True)
df

17. 对列名进行排序

# 编程df = pd.DataFrame({'DateOfBirth': ['1986-11-11', '1999-05-12', '1976-01-01','1986-06-01', '1983-06-04', '1990-03-07', '1999-07-09'],'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index=['Jane', 'Pane', 'Aaron', 'Penelope', 'Frane', 'Christina', 'Cornelia'])# 按降序对列名进行排序
# 获取列名,并按降序排序  
sorted_columns = df.columns.tolist()  
sorted_columns.sort(reverse=True)  # 使用排序后的列名重新索引DataFrame  
df_sorted_columns = df.reindex(columns=sorted_columns)  # 显示按降序排序列名的DataFrame  
df_sorted_columns

18. 对数据进行排序

# 编程df = pd.DataFrame({'DateOfBirth': ['1986-11-11', '1999-05-12', '1976-01-01','1986-06-01', '1983-06-04', '1990-03-07', '1999-07-09'],'State': ['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX']}, index=['Jane', 'Pane', 'Aaron', 'Penelope', 'Frane', 'Christina', 'Cornelia'])# 1、对state列的值进行排序
df.sort_values(by="State")# 2、对state、DateOfBirth两列的值进行降序排序,并改变原DataFrame
df.sort_values(by=["State","DateOfBirth"],ascending=[False,False])

19. map()、applymap()使用

# 编程data = {'fruit':['apple','banana','grape'],'price':[5,6,7]}
df = pd.DataFrame(data)
display(df)# 1、编写函数将price中整数改为字串,例如5改为5元
def convert_price_to_string(df):  df['price'] = df['price'].astype(str) + '元'  return df  # 使用函数转换price列  
df_with_string_prices = convert_price_to_string(df)  
df1 = display(df_with_string_prices) 
df1

# 2、将fruit列中首字母大写
def capitalize_first_letter(df):  df['fruit'] = df['fruit'].str.capitalize()  return df  # 使用函数将fruit列的首字母大写  
df_with_capitalized_fruit = capitalize_first_letter(df)  
df2 = display(df_with_capitalized_fruit)
df2

# 编程data = {'fruit':['apple','banana','grape'],'price':[5,6,7]}
df = pd.DataFrame(data)
display(df)# 3.将price中数据从整数转为浮点数,采用map()
# 使用向量化操作进行类型转换(对于更复杂的转换可能有用)  
df['price'] = [float(p) for p in df['price']]  df.dtypes

# 编程df = pd.DataFrame(np.random.rand(3,3), index=['a','b','c'], columns=['A','B','C'])
display(df)# 4. 将所有数据改为小数点后三位,采用applymap()
df['price'] = df['price'].apply(lambda x: '{:.3f}'.format(x))  # 显示格式化后的DataFrame  
display(df)

20. 采用“豆瓣电影数据”进行分析

# 编程df = pd.read_excel('assets/豆瓣电影数据.xlsx') # read_excel方法进行读取excel文件 # 1、显示前5行
df.head()# 2、显示后5行
df.tail()# 3、随机选5行
df.sample(5)

# 编程# 4、选取产地为泰国,'名字','类型'两列 loc()方法
df.loc[df["产地"]=="泰国",["名字","类型"]]

# 5、选取评分大于9.5,'名字','类型','产地'三列 loc方法
df.loc[df["评分"]>9.5,["名字","类型","产地"]]

# 6、选取评分大于9且投票人数大于1000的数据 query方法
filtered_df = df.query("(`评分`>9)  & (`投票人数`>1000)")
filtered_df

# 7、查看整个数据集的统计信息
df.describe()# 8、查看整个数据基本信息
df.info()

附录:

数据源:豆瓣电影数据.xlsx

在这里插入图片描述


http://www.mrgr.cn/p/77567134

相关文章

如何在阿里云快速配置自动定时重启ECS云服务器?

背景 无论是电子商务、在线教育、游戏&#xff0c;还是流媒体等业务&#xff0c;服务器的稳定运行都是至关重要的。然而&#xff0c;在实际运行中&#xff0c;我们可能会遇到这样一些场景&#xff1a; 系统更新&#xff1a;一些操作系统或者软件的更新可能需要重启服务器才能…

buuctf-pwn-2.rip

先用checksec看一下保护情况红色表示没有保护,绿色则表示有相应的保护 关于每种保护会在之后的做题中遇到,也有相应的应对措施,这次就不过多深入 打开ida64分析附件发现高危函数gets,这个函数不会检查输入的长度 我们可以利用它修改函数的返回地址,从而执行后门函数找到后…

【draw.io的使用心得介绍】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

条件生成对抗网络(cGAN)在AI去衣技术中的应用探索

随着深度学习技术的飞速发展&#xff0c;生成对抗网络&#xff08;GAN&#xff09;作为其中的一个重要分支&#xff0c;在图像生成、图像修复等领域展现出了强大的能力。其中&#xff0c;条件生成对抗网络&#xff08;cGAN&#xff09;通过引入条件变量来控制生成模型的输出&am…

Redis系列5:深入分析Cluster 集群模式

1 背景 前面我们学习了Redis高可用的两种架构模式&#xff1a;主从模式、哨兵模式。 解决了我们在Redis实例发生故障时&#xff0c;具备主从自动切换、故障转移的能力&#xff0c;终保证服务的高可用。 但是这些其实远远不够&#xff0c;随着我们业务规模的不断扩展&#xff0…

Anaconda中安装pyecharts

学习Python的过程中发现conda无法使用pyecharts https://pypi.org/project/pyecharts/#files 下载后将whl文件复制到到本地conda\scripts目录下 随后打开conda 切换到script目录下,输入命令 pip install pyecharts-2.0.5-py3-none-any.whl 等待安装完成 在pycharm中配置Python…

【ZYNQ】zynq启动模式及程序固化

一、前言 由于zynq含有arm cpu ,其启动模式由ps主导&#xff0c;与纯逻辑的fpga不相同&#xff0c;此处做一个记录。 二、zynq启动模式 关于zynq的启动模式详细内容可以参考官方文档&#xff1a;ug585-Zynq 7000 SoC Technical Reference Manual&#xff0c;第六章。 2.1 启…

网络拓扑—FTP服务搭建

均使用Windows Server 2003进行搭建目录FTP服务搭建网络拓扑配置网络FTPPC安装FTP服务配置FTP服务FTP用户配置—1PC机访问FTP站点IE浏览器访问终端访问FTP用户配置—2PC机访问ftp站点IE浏览器访问终端访问 FTP服务搭建 网络拓扑//交换机忽略不计 FTP服务IP:192.168.1.1 PC机IP…

【研发管理】产品经理知识体系-产品创新中的市场调研

导读&#xff1a;在产品创新过程中&#xff0c;市场调研的重要性不言而喻。它不仅是产品创新的起点&#xff0c;也是确保产品成功推向市场的关键步骤。对于产品经理系统学习和掌握产品创新中的市场调研相关知识体系十分重要。 目录 概述&#xff1a;市场调研重要性 1、相关概…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

【Java--数据结构】链表经典OJ题详解(上)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 谈谈头插、头删、尾插、头插的时间复杂度 反转一个单链表 链表的中间结点 返回倒数第k个结点 合并两个链表 谈谈头插、头删、尾插、头插的时间复杂度 头插和头删的时…

顺序栈--代码题

数据结构 顺序栈代码题设计一个进制转换程序,使用顺序栈设计一个把十进制转化为十六进制的接口,实现当键盘输入一个非负的十进制时,可以在终端输出对应的十六进制数。 /***************************************************************************************** file n…

完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城

源码下载地址&#xff1a;完美运营版商城.zip 后台可以自由拖曳修改前端UI页面 还支持虚拟商品自动发货等功能 挺不错的一套源码 前端UNIAPP 后端PHP 一键部署版本

aws安装jenkins步骤

一、aws安装jdk11 1.1 aws安装jdk11 1、切换root,更新yum, sudo su yum update exist 2、安装JDK1.8版本 yum -y list java-1.8.0* #(安装jdk11,yum -y list java-11*) yum install java-1.8.0-openjdk-devel.x86_64 #(安装jdk11,yum -y list java-11-openjdk-deve…

嵌入式4-24

作业&#xff1a; 整理思维导图 定义一个矩形类Rec&#xff0c;包含私有属性length&#xff0c;width&#xff0c;有以下成员函数&#xff1a; void set_length(int l); //设置长度 void set_width(int w); //设置宽度 int get_length(); //获取长度 int get_width(); //获取宽…

【GIS教程】ArcGIS做日照分析(附练习数据下载)

我国对住宅日照标准的规定是:冬至日住宅底层日照不少于1小时或大寒日住宅层日照不少于2小时(通常以当地冬至日正午12时的太阳高度角作为依据)。因冬至日太阳高度角最低&#xff0c;照射范围最小&#xff0c;如果冬至日12&#xff1a;00建筑物底层能够接收到阳光&#xff0c;那么…

Golang | Leetcode Golang题解之第42题接雨水

题目&#xff1a; 题解: func trap(height []int) (ans int) {n : len(height)if n 0 {return}leftMax : make([]int, n)leftMax[0] height[0]for i : 1; i < n; i {leftMax[i] max(leftMax[i-1], height[i])}rightMax : make([]int, n)rightMax[n-1] height[n-1]for i…

详解MySQL C API 相关接口(大白话就是:MySQL的c语言怎么写)

文章目录 1、C API 官方文档2、初始化 MYSQL3、连接 MySQL设置连接字符集&#xff08;使得客户端编码方式匹配&#xff09; 4、下发 mysql 指令5、获取 mysql 查询结果(保存起来)获取行与列遍历存储结果 6、释放 MYSQL\_RES 对象7、关闭 MySQL 连接8、总结 1、C API 官方文档 …

vue3 删除对象中的属性,可以使用js里的delete,但需注意ts定义对象类型!

如上如&#xff0c;当使用delete 删除stateData中的属性时&#xff0c; 报错&#xff0c;意思为 TypeScript 错误“‘delete’ 运算符的操作数必须是可选的 什么原因呢&#xff1f;是因为我偷懒 缺少了ts定义类型 方法一&#xff1a; &#xff08;不推荐&#xff09; delete …

嵌入式笔记4.1 GPIO 功能复用

目录一、了解 MCU(GPIO)具有的所有复用功能通过查看 MCU 的数据手册可以知道 MCU 的所有引脚的功能:例 STM32L431:例 stm32f103:复用、重映射、多路复用(多功能引脚)GPIO复用(AF - Alternate Function)重映射(Remapping)多路复用(Multi-function)常见引脚功能一览…