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

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.mzph.cn/web/3368.shtml

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

相关文章

Dubbo的核心功能及其在实际项目中的应用

Dubbo不仅简化了微服务架构的开发和部署&#xff0c;还提供了诸多核心功能&#xff0c;帮助开发团队提升服务治理的能力和系统的可扩展性。下面&#xff0c;我将详细介绍Dubbo的核心功能&#xff0c;并结合实际项目经验&#xff0c;举例说明这些功能是如何在项目中发挥作用的。…

Blueprints - 鼠标光标判断相关节点

一些以前的学习笔记归档&#xff1b; 俯视角场景中要用鼠标光标判断是否点中物体&#xff0c;或依靠光标引发各种事件&#xff1b; 这些逻辑一般编写在Controller中&#xff0c;Controller类本身就带有相关判断节点&#xff1a; 其中Get Hit Result Under Cursor by Channel是…

如何批量跟踪京东物流信息

随着电商行业的快速发展&#xff0c;快递业务日益繁忙&#xff0c;无论是商家还是消费者&#xff0c;都需要一种高效、便捷的快递查询工具。快递批量查询高手软件应运而生&#xff0c;以其强大的功能和便捷的操作体验&#xff0c;赢得了广大电商、微商精英们的青睐。 快递批量…

用Bash变量进行sed替换

问题&#xff1a; 我试图在一个 Bash 脚本中使用 sed 改变文本文件中的值&#xff1a; sed s/draw($old_num;n_)/draw($new_num;n_)/g file.txt > tmp这行代码将在 for 循环中。为什么它不起作用&#xff1f; 回答&#xff1a; 当使用 Bash 变量进行 sed 替换时&#xff…

Golang编译优化——公共子表达式消除

文章目录 一、概述二、公共子表达式消除2.1 初始划分等价值2.2 细分等价值2.2.1 给所有值标号2.2.2 根据参数细分等价值 2.3 替换重复表达式2.3 .1 按照支配性排序2.3 .2 进行替换操作 一、概述 公共子表达式消除&#xff08;Common Subexpression Elimination&#xff0c;CSE…

机器人视觉教学实训平台

一&#xff1a;功能概述 1.1、功能简介 机器人视觉教学实训平台基于睿尔曼机器人与海康机器视觉产品&#xff0c;面向机器人视觉系统应用而开发设计&#xff0c;产品涵盖机器人系统、工业视觉系统、自动化控制系统、计算机编程系统&#xff0c;可以在一台设备上进行多种与机器…

冷热不均?试试智慧供热二网平衡解决方案吧!

一、系统背景&#xff1a; 在城市供热系统中&#xff0c;目前普遍存在热力平衡调节困难、过量供热及供热不足并存、系统灵活性不足、管理粗放、智能化水平不高、无法根据实际天气变化及具体需求灵活调节等问题。供水管和回水管之间的温差过大&#xff0c;导致热能在循环过程中…

Confluence 快捷键大揭秘:提高效率的小窍门

使用 Confluence 快捷键的好处有&#xff1a; 1.提高工作效率&#xff1b; 2.更流畅地进行编辑、导航和管理操作&#xff1b; 3.减少误操作&#xff1b; 4.展现专业水平。 更多精彩内容&#xff1a; 成为 Jira 大师&#xff1a;效率达人的必备秘诀 Jira Cloud 项目管理专栏 PMO…

centos7.9下安装SVN服务

一、安装subversion yum install -y subversion #安装svn mkdir -p /data/svnrepos/java #自定义svn仓库位置/data/svnrepos&#xff0c;自定义一个项目叫svn&#xff08;这里新建目录&#xff09; svnadmin create /data/svnrepos/java #创建一…

Linux:进程创建 进程终止

Linux&#xff1a;进程创建 & 进程终止 进程创建fork写时拷贝 进程终止退出码strerrorerrno 异常信号exit 进程创建 fork fork函数可以用于在程序内部创建子进程&#xff0c;其包含在头文件<unistd.h>中&#xff0c;直接调用fork()就可以创建子进程了。 示例代码&…

个人博客系统的设计与实现

https://download.csdn.net/download/liuhaikang/89222885http://点击下载源码和论文 本 科 毕 业 设 计&#xff08;论文&#xff09; 题 目&#xff1a;个人博客系统的设计与实现 专题题目&#xff1a; 本 科 毕 业 设 计&#xff08;论文&#xff09;任 务 书 题 …

算法-动态规划专题

文章目录 前言 : 动态规划简述1 . 斐波那契模型1.1 泰波那契数列1.2 最小花费爬楼梯1.3 解码方法 前言 : 动态规划简述 动态规划在当前我们的理解下,其实就是一种变相的递归,我们查看一些资料也可以知道,动态规划其实属于递归的一个分支,通过把递归问题开辟的栈帧通过一定的手…

1002 - 编程求解1+2+3+...+n

题目描述 编程求解下列式子的值&#xff1a; S123 \dots nS123⋯n。 输入 输入一行&#xff0c;只有一个整数 n(1 \le n \le 1000)n(1≤n≤1000) 。 输出 输出只有一行&#xff08;这意味着末尾有一个回车符号&#xff09;&#xff0c;包括 11 个整数。 样例 输入 100 …

“亚马逊依赖”之下,傲基科技的品牌势能如何提升?

受益于出口政策红利、低人工成本、完善的供应链以及成熟的生产工艺优势&#xff0c;近年来我国家具出口行业迅速发展。 数据显示&#xff0c;我国家具出口规模1995年仅为11.06亿美元&#xff0c;至2023年增至641.96亿美元。随着出口规模持续扩大&#xff0c;相关企业积极走入公…

【OpenGL实践08】现代渲染管线在GLUT和Pygame和Qt.QOpenGLWidget上各自的实现代码

Qt.QOpenGLWidget进行现代渲染管线实验效果 一、说明 据说QOpenGLWidget是用来取代QGLWidget的继承者&#xff0c;我们试图将GLUT上的旧代码改成QOpenGLWidget&#xff0c;本以为差别不大&#xff0c;轻易搞定&#xff0c;经实践发现要付出极大努力才能完成。经多次实验发现G…

【postgresql初级使用】updatable view 可修改的视图,以及视图数据致性的控制,完全分离数据报表业务与数据的维护操作部署架构尝试

可修改的视图 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 可修改的视图概述 可修改视图介绍

编译原理实验课

本人没咋学编译原理&#xff0c;能力有限&#xff0c;写的不好轻点喷&#xff0c;大佬路过的话&#xff0c;那你就路过就好 东大编译原理实验课原题&#xff0c;22年 1. 基本题&#xff1a;简单的扫描器设计 【问题描述】 熟悉并实现一个简单的扫描器&#xff0c;设计扫描器…

Spring从零开始学使用系列(三)--依赖注入(DI)

目录 1.DI的核心概念 1.1优势 2. Spring中的DI实现 2.1 构造器注入 2.1.2 优势和缺点 2.2 设置器注入 2.2.1 如何使用设置器注入 2.2.2 示例代码 2.2.3优势和使用场景 2.3 字段注入 2.4 方法注入 2.4.1 方法注入的概念 2.4.2 找方法注入 2.4.3 Lookup 注解的作用 2…

nosql数据库 redis

一、介绍 1、redis与mysql的区别&#xff1a; Redis是一种基于键值对的内存数据库&#xff0c;数据存储在内存中&#xff0c;因此读写速度非常快。它支持多种数据结构&#xff0c;如字符串、哈希、列表等。 MySQL是一种关系型数据库&#xff0c;数据以表格的形式组织存储在磁…

【Python】使用Pandas和随机森林对鸢尾花数据集进行分类

我在鼓楼的夜色中 为你唱花香自来 在别处 沉默相遇和期待 飞机飞过 车水马龙的城市 千里之外 不离开 把所有的春天 都揉进了一个清晨 把所有停不下的言语变成秘密 关上了门 莫名的情愫啊 请问 谁来将它带走呢 只好把岁月化成歌 留在山河 &#x1f3b5; 鹿…