python - DataFrame查询数据操作

学习目标

  • 掌握获取df一列或多列数据的方法

  • 知道loc和iloc的区别以及使用方法

  • 知道df的query函数的使用方法

  • 知道isin函数的作用和使用方法

获取DataFrame子集的基本方法

1.1 从前从后获取多行数据

案例中用到的数据集在文章顶部   LJdata.csv

前景回顾 head() & tail()

import pandas as pd
​
# 加载csv数据集
df = pd.read_csv('LJdata.csv')
# 默认取前5行数据, 返回新的DataFrame
print(df.head())
# 取前10行数据
print(df.head(n=10))
​
# 默认取后5行数据, 返回新的DataFrame
print(df.tail())
# 取后10行数据
print(df.tail(n=10))

1.2 获取一列或多列数据

1.2.1 获取一列数据

获取一列数据, 通过df[列名]df.列名, 返回series对象

==注意:==如果列名字中间有空格, 只能通过df['列名']方式获取

print(df['户型'])
print(df.户型)
print(type(df['户型']))  # <class 'pandas.core.series.Series'>
1.2.2 获取多列数据

获取多列数据, 通过 df[[列名1, 列名2, ...]], 返回dataframe对象

==注意:==是两层[], 可以理解为df[列名的列表]

new_df = df[['区域', '地址']]
print(new_df)
print(type(new_df))  # <class 'pandas.core.frame.DataFrame'>

1.3 布尔值向量获取行数据

  • 布尔值向量:完全由布尔值组成的一维数据,布尔值向量形式为

    • 布尔值构成的列表

    • 布尔值构成的series

    • 布尔值构成的numpy.ndarray

  • df[[布尔值向量]] 其中布尔值向量的布尔值个数必须和df的行数(df.shape[0])相等

1.3.1 布尔值列表获取对应为True的行数据
df_head = df.head()
print(df_head)
print(df_head[[False, True, False, False, True]])
​
# 输出结果如下
         区域          地址    户型  面积  价格  朝向    更新时间  看房人数
0    燕莎租房        新源街  2室1厅    50  5800    南  2017.07.21        26
1    望京租房      澳洲康都  2室1厅    79  7800    东  2017.07.23        33
2  广安门租房      远见名苑  2室1厅    86  8000    东  2017.07.20        34
3  天通苑租房  天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
4  团结湖租房    团结湖北口  2室1厅    63  6400    南  2017.07.26        30
         区域        地址    户型  面积  价格 朝向    更新时间  看房人数
1    望京租房    澳洲康都  2室1厅    79  7800   东  2017.07.23        33
4  团结湖租房  团结湖北口  2室1厅    63  6400   南  2017.07.26        30
1.3.2 布尔值构成的Series获取对应为True的行数据
print(df_head['面积'] > 80)  # 返回布尔值构成的series对象
print(df_head[temp_df['面积'] > 80])
​
# 输出结果如下
0    False
1    False
2     True
3     True
4    False
Name: 面积, dtype: bool
         区域          地址    户型  面积  价格  朝向    更新时间  看房人数
2  广安门租房      远见名苑  2室1厅    86  8000    东  2017.07.20        34
3  天通苑租房  天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
1.3.3 布尔值构成的ndarray获取对应为True的行数据
import numpy as np
n1 = np.array([False, True, False, False, True])
print(n1)
print(df_head[n1])
​
# 输出结果如下
[False  True False False  True]
         区域        地址    户型  面积  价格 朝向    更新时间  看房人数
1    望京租房    澳洲康都  2室1厅    79  7800   东  2017.07.23        33
4  团结湖租房  团结湖北口  2室1厅    63  6400   南  2017.07.26        30

1.4 索引下标切片获取行数据

通过 df[起始行下标:结束行下标:步长], 获取多行数据

遵循==左闭右开==原则(包含起始行, 不包含结束行), 步长默认为1

temp_df = df.head(10) # 取原df前10行数据作为df4,默认自增索引由0到9
print(temp_df[0:3]) # 取前3行
print(temp_df[:5:2]) # 取前5行,步长为2
print(temp_df[1::3]) # 取第2行到最后所有行,步长为3
print(temp_df[-3:])  # 获取最后三行
​
# 输出结果如下
         区域      地址    户型  面积  价格 朝向    更新时间  看房人数
0    燕莎租房    新源街  2室1厅    50  5800   南  2017.07.21        26
1    望京租房  澳洲康都  2室1厅    79  7800   东  2017.07.23        33
2  广安门租房  远见名苑  2室1厅    86  8000   东  2017.07.20        34
         区域        地址    户型  面积  价格 朝向    更新时间  看房人数
0    燕莎租房      新源街  2室1厅    50  5800   南  2017.07.21        26
2  广安门租房    远见名苑  2室1厅    86  8000   东  2017.07.20        34
4  团结湖租房  团结湖北口  2室1厅    63  6400   南  2017.07.26        30
         区域        地址    户型  面积  价格 朝向    更新时间  看房人数
1    望京租房    澳洲康都  2室1厅    79  7800   东  2017.07.23        33
4  团结湖租房  团结湖北口  2室1厅    63  6400   南  2017.07.26        30
7    马甸租房      月季园  2室1厅    53  6000   南  2017.07.16        26

loc通过行列名获取子集

df.loc[] 通过行名(行索引值、行索引名)、列名获取子集

2.1 行索引值获取1行数据

通过 df.loc[行索引值] 获取一行数据

# 获取行索引值为2的一行数据, 返回series
print(temp_df.loc[2]) 
​
# 输出结果如下
区域        广安门租房
地址          远见名苑
户型            2室1厅
面积                86
价格              8000
朝向                东
更新时间    2017.07.20
看房人数            34
Name: 2, dtype: object

2.2 行索引值获取多行数据

通过 df.loc[[行索引值1, 行索引值2, ...]] 获取多行数据

# 获取行索引值为0和2的两行数据, 返回dataframe
print(temp_df.loc[[0, 2]])
​
# 输出结果如下
         区域      地址    户型  面积  价格 朝向    更新时间  看房人数
0    燕莎租房    新源街  2室1厅    50  5800   南  2017.07.21        26
2  广安门租房  远见名苑  2室1厅    86  8000   东  2017.07.20        34

2.3 行索引值切片获取多行数据

通过 df.loc[起始行索引值:结束行索引值:步长] 获取多行数据

遵循==左闭右闭==原则(包含起始行, 包含结束行), 步长默认为1

==注意:==df.loc[起始行索引值:结束行索引值:步长] 不等同于 df[起始行下标:结束行下标:步长]

print(temp_df.loc[:3])  # 表示获取行索引值0到3的行数据
print(temp_df[:3])  # 表示获取行下标值0到2的行数据
​
# 输出结果如下
         区域          地址    户型  面积  价格  朝向    更新时间  看房人数
0    燕莎租房        新源街  2室1厅    50  5800    南  2017.07.21        26
1    望京租房      澳洲康都  2室1厅    79  7800    东  2017.07.23        33
2  广安门租房      远见名苑  2室1厅    86  8000    东  2017.07.20        34
3  天通苑租房  天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
         区域      地址    户型  面积  价格 朝向    更新时间  看房人数
0    燕莎租房    新源街  2室1厅    50  5800   南  2017.07.21        26
1    望京租房  澳洲康都  2室1厅    79  7800   东  2017.07.23        33
2  广安门租房  远见名苑  2室1厅    86  8000   东  2017.07.20        34

2.4 布尔值向量获取行数据

通过 df.loc[[布尔值向量]] 获取对应为True的行数据, 等同于 df[[布尔值向量]]

df_head = df.head()
n1 = np.array([False, True, False, False, True])
print(df_head.loc[n1])
​
# 输出结果如下
         区域        地址    户型  面积  价格 朝向    更新时间  看房人数
1    望京租房    澳洲康都  2室1厅    79  7800   东  2017.07.23        33
4  团结湖租房  团结湖北口  2室1厅    63  6400   南  2017.07.26        30

2.5 布尔值向量取行再配合列名取子集

通过 df.loc[布尔值向量, [列名1, 列名2, ...]] 获取子集

# print(temp_df['区域'] == '望京租房')  # 返回布尔值的series
​
# loc 有两个参数,参数1是布尔条件,参数2是选择查询的列
print(temp_df.loc[temp_df['区域'] == '望京租房', ['区域', '价格']])
​
# 输出结果如下
       区域  价格
1  望京租房  7800

2.6 行索引值取行再配合列名取子集

通过 df.loc[[行索引值1, 行索引值2, ...], [列名1, 列名2, ...]]

print(temp_df.loc[[1], ['区域', '价格']])
​
# 输出结果如下
       区域  价格
1  望京租房  7800
​
​
print(df.loc[4,'地址'])  # 得到的是字符串
​
# 输出结果如下
  团结湖北口  

2.7 行索引值切片取行再配合列名取子集

通过 df.loc[行索引值起始值:行索引值结束值:步长, [列名1, 列名2, ...]] 获取子集

遵循==左闭右闭==原则(包含起始行, 包含结束行), 步长默认为1

print(temp_df.loc[1:5:2, ['区域', '价格']])
print(temp_df.loc[:, ['区域', '价格']])
​
# 输出结果如下
         区域  价格
1    望京租房  7800
3  天通苑租房  5300
5  回龙观租房  4000
         区域  价格
0    燕莎租房  5800
1    望京租房  7800
2  广安门租房  8000
3  天通苑租房  5300
4  团结湖租房  6400
5  回龙观租房  4000
6    北苑租房  7500
7    马甸租房  6000
8  小西天租房  8500
9    北苑租房  5300

3 iloc通过行列下标获取子集

df.iloc[] 通过行下标(行索引下标、行序号)、列下标获取子集

3.1 行下标获取1行数据

通过 df.iloc[行下标] 获取一行数据

# 获取行索引下标为2的一行数据, 返回series
dict_data= {
    '歌手':['周杰伦','张国荣','罗大佑'],
    '歌曲':['七里香','沉默是金','童年']
}
df_star = pd.DataFrame(data=dict_data,index=[2004,1991,1982],columns=['歌手','歌曲'])
print(df_star)
​
print(df_star.iloc[0])  # 行索引是: 2004 1991 1982   # 行下标是 : 0 1 2 
​
# 输出结果
歌手    周杰伦
歌曲    七里香
Name: 2004, dtype: object

3.2 行下标获取多行数据

通过 df.iloc[[行下标1, 行下标2, ...]] 获取多行数据

# 获取行索引下标为0和2的两行数据, 返回dataframe
print(df_star.iloc[[0, 2]])
​
# 输出结果如下
       歌手   歌曲
2004  周杰伦  七里香
1982  罗大佑   童年

3.3 行下标切片获取多行数据

通过 df.iloc[起始行下标:结束行下标:步长] 获取多行数据

遵循==左闭右开==原则(包含起始行, 不包含结束行), 步长默认为1

==注意:==df.iloc[起始行下标:结束行下标:步长] 等同于 df[起始行下标:结束行下标:步长]

print(temp_df.iloc[:3])  # 表示获取行下标为0到2的行数据
print(temp_df[:3])  # 表示获取行下标为0到2的行数据
​
# 输出结果如下
         区域      地址    户型  面积  价格 朝向    更新时间  看房人数
0    燕莎租房    新源街  2室1厅    50  5800   南  2017.07.21        26
1    望京租房  澳洲康都  2室1厅    79  7800   东  2017.07.23        33
2  广安门租房  远见名苑  2室1厅    86  8000   东  2017.07.20        34
         区域      地址    户型  面积  价格 朝向    更新时间  看房人数
0    燕莎租房    新源街  2室1厅    50  5800   南  2017.07.21        26
1    望京租房  澳洲康都  2室1厅    79  7800   东  2017.07.23        33
2  广安门租房  远见名苑  2室1厅    86  8000   东  2017.07.20        34

3.4 行列下标切片取子集

通过 df.iloc[起始行下标:结束行下标:步长, 起始列下标:结束列下标:步长] 获取子集

遵循==左闭右开==原则(包含起始行/列, 不包含结束行/列), 步长默认为1

# 第1行到第5行,每2行选第1行;所有列,每2列取第1列
print(temp_df.iloc[0:5:2, ::2])
​
# 输出结果如下
         区域    户型  价格    更新时间
0    燕莎租房  2室1厅  5800  2017.07.21
2  广安门租房  2室1厅  8000  2017.07.20
4  团结湖租房  2室1厅  6400  2017.07.26

3.5 行下标切片和列下标取子集

通过 df.iloc[起始行下标:结束行下标:步长, [列下标1, 列下标2, ...]] 获取子集

遵循==左闭右开==原则(包含起始行, 不包含结束行), 步长默认为1

# 第1行到第5行,每2行选第1行;第1列和第3列
print(temp_df.iloc[0:5:2, [0, 2]])
​
# 输出结果如下
         区域    户型
0    燕莎租房  2室1厅
2  广安门租房  2室1厅
4  团结湖租房  2室1厅

3.6 行下标和列下标取子集

通过 df.iloc[[行下标1, 行下标2, ...], [列下标1, 列下标2, ...]]

# 第1行、第3行、第5行;第1列和第3列
print(temp_df.iloc[[0, 2, 4], [0, 2]])
​
# 输出结果如下
         区域    户型
0    燕莎租房  2室1厅
2  广安门租房  2室1厅
4  团结湖租房  2室1厅

3.7 行下标和列下标切片取子集

通过 df.iloc[[行下标1, 行下标2, ...], 起始列下标:结束列下标:步长] 获取子集

遵循==左闭右开==原则(包含起始列, 不包含结束列), 步长默认为1

# 第1行、第3行、第5行;所有列,每2列取第1列
print(temp_df.iloc[[0, 2, 4], ::2])
​
# 输出结果如下
         区域    户型  价格    更新时间
0    燕莎租房  2室1厅  5800  2017.07.21
2  广安门租房  2室1厅  8000  2017.07.20
4  团结湖租房  2室1厅  6400  2017.07.26

4 query函数获取子集

通过 df.query(判断表达式) 获取符合条件的df子集, 与 df[[布尔值向量]] 效果相同

==注意:==判断表达式为字符串格式

  • 示例

    print(temp_df.query("区域=='望京租房'"))  #  区域是列名  ,望京租房是值
    print(temp_df[temp_df['区域'] == '望京租房'])
    ​
    # 输出结果如下
           区域      地址    户型  面积  价格 朝向    更新时间  看房人数
    1  望京租房  澳洲康都  2室1厅    79  7800   东  2017.07.23        33

  • 查询租房区域为望京、天通苑、回龙观并且朝向为东、南的房源数据

    ​
    # .query().query()是链式编程, 第一个query查询之后,第二个query会在第一个的基础上再进行查询
    ​
    print(temp_df.query('区域 in ["望京租房", "天通苑租房", "回龙观租房"]').query('朝向 in ["东", "南"]'))
    ​
    print(temp_df.query('(区域 in ["望京租房", "天通苑租房", "回龙观租房"]) and (朝向 in ["东", "南"])'))
    ​
    # 作用同上
    print(temp_df.query('(区域 in ["望京租房", "天通苑租房", "回龙观租房"]) & (朝向 in ["东", "南"])'))
    ​
    ​
    # 输出结果如下
             区域      地址    户型  面积  价格 朝向    更新时间  看房人数
    1    望京租房  澳洲康都  2室1厅    79  7800   东  2017.07.23        33
    5  回龙观租房    龙华园  1室1厅    58  4000   南  2017.07.23        61

5 isin函数获取子集

通过 df.isin(values=[值1, 值2, ...]) 判断df中的数据值是否在values列表值中, 返回由布尔值构成的新df

原df中数据值在values列表中返回True, 否则返回False

temp_df = df.head(5)
# 拿到temp_df每行每列的值去和'天通苑租房'比较,如果比较成功,返回True,否则false
print(temp_df.isin(values=['天通苑租房']))
​
# 拿到temp_df每行每列的值去和'天通苑租房'或者'南'比较,如果比较成功,返回True,否则false
print(temp_df.isin(values=['天通苑租房', '南']))
​
print(temp_df[temp_df.isin(values=['天通苑租房', '南'])])
​
print(temp_df[((temp_df["区域"]=='望京租房') | (temp_df['区域']=='天通苑租房') | (temp_df['区域']=='回龙观租房')) & ((temp_df['朝向']=='东') | (temp_df['朝向']=='南'))])
​
​
​
# 输出结果如下
    区域   地址   户型   面积   价格   朝向  更新时间  看房人数
0  False  False  False  False  False  False     False     False
1  False  False  False  False  False  False     False     False
2  False  False  False  False  False  False     False     False
3   True  False  False  False  False  False     False     False
4  False  False  False  False  False  False     False     False
    区域   地址   户型   面积   价格   朝向  更新时间  看房人数
0  False  False  False  False  False   True     False     False
1  False  False  False  False  False  False     False     False
2  False  False  False  False  False  False     False     False
3   True  False  False  False  False  False     False     False
4  False  False  False  False  False   True     False     False
         区域 地址 户型  面积  价格 朝向 更新时间  看房人数
0         NaN  NaN  NaN   NaN   NaN   南      NaN       NaN
1         NaN  NaN  NaN   NaN   NaN  NaN      NaN       NaN
2         NaN  NaN  NaN   NaN   NaN  NaN      NaN       NaN
3  天通苑租房  NaN  NaN   NaN   NaN  NaN      NaN       NaN
4         NaN  NaN  NaN   NaN   NaN   南      NaN       NaN

Serires对象使用isin函数返回新的s对象,其他完全相同

print(temp_df['区域'].isin(values=['天通苑租房']))
print(temp_df['区域'].isin(values=['天通苑租房', '回龙观租房']))
print(temp_df[temp_df['区域'].isin(values=['天通苑租房', '回龙观租房'])])
​
​
# 输出结果如下
0    False
1    False
2    False
3     True
4    False
Name: 区域, dtype: bool
0    False
1    False
2    False
3     True
4    False
Name: 区域, dtype: bool
                 区域          地址    户型  面积  价格  朝向    更新时间  看房人数
3  天通苑租房  天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30

总结

请对下列API 有印象、能找到、能理解、能看懂

  • API清单

子集操作方法方法说明
df.head(n)获取前n行数据,默认5行
df.tail(n)获取最后n行数据,默认5行
df[列名] 或 df.列名获取一列数据
df[[列名1,列名2,...]]获取多列数据
df[[布尔值向量]]df[[True, False, ...]]取出对应为True的数据行
df[起始行下标:结束行下标:步长]行下标(索引下标)切片获取数据行
df.loc[行索引值]索引值(行名)获取1行数据
df.loc[[行索引值1, 行索引值2, ...]]索引值(行名)获取多行数据
df.loc[起始行索引值:结束行索引值:步长]索引值(行名)切片获取多行数据,注意与df[起始行下标:结束行下标:步长]不同
df.loc[[布尔值向量]]布尔值向量获取行数据,等同于df[[布尔值向量]]
df.loc[布尔值向量,[列名1, 列名2, ...]]布尔值向量取行再配合列名取子集
df.loc[[行索引值1, 行索引值2, ...], [列名1, 列名2, ...]]索引值取行再配合列名取子集
df.loc[行索引值起始值:行索引值结束值:步长, [列名1, 列名2, ...]]列名取子集
df.iloc[行下标]行下标取1行
df.iloc[[行下标1, 行下标2, ...]]行下标取多行
df.iloc[起始行下标:结束行下标:步长]行下标切片取多行
df.iloc[起始行下标:结束行下标:步长,起始列下标:结束列下标:步长]行列下标切片取子集
df.iloc[起始行下标:结束行下标:步长,[列下标1, 列下标2, ...]]行下标切片和列下标取子集
df.iloc[[行下标1, 行下标2, ...], [列下标1, 列下标2, ...]]行下标和列下标取子集
df.iloc[[行下标1, 行下标2, ...], 起始列下标:结束列下标:步长]行下标和列下标切片取子集
df.query('判断表达式字符串')df[[布尔值向量]]效果相同依据判断表达式返回符合条件的df子集
df.isin([值1, 值2, ...])判断是否存在某个值
  • loc和iloc的区别:

    • loc是根据行列名获取子集,行列名是肉眼看到的值

    • iloc是根据行列下标获取子集,行列下

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv实战小结-银行卡号识别

实战1-银行卡号识别 项目来源&#xff1a;opencv入门 项目目的&#xff1a;识别传入的银行卡照片中的卡号 难点&#xff1a;银行卡上会有一些干扰项&#xff0c;如何排除这些干扰项&#xff0c;并且打印正确的号码是一个问题 最终效果如上图 实现这样的功能需要以下几个步骤…

JDK7 JDK8 JDK9接口中的默认方法、静态方法、私有方法

JDK8开始之后接口新增的方法 JDK7以前&#xff1a;接口中只能定义抽象方法 JDK8的新特性&#xff1a;接口中可以定义有方法体的方法&#xff08;默认、静态&#xff09; JDK9的新特性&#xff1a;接口中可以定义私有方法 接口中的默认方法InterA package com.itheima.a06;p…

IO进程线程(十)进程间通信 消息队列 共享内存 信号灯集

文章目录 一、IPC(Inter-Process Communication)进程间通信相关命令 &#xff1a;&#xff08;一&#xff09;ipcs --- 查看IPC对象&#xff08;二&#xff09;获取IPC键值&#xff08;三&#xff09;删除IPC对象的命令&#xff08;四&#xff09;获取IPC键值的函数1. 函数定义…

C++基础与深度解析 | 模板 | 函数模板 | 类模板与成员函数模板 | concepts | 完美转发 | 模板的其他内容

文章目录 一、函数模板二、类模板与成员函数模板三、Concepts(C20)四、模板相关内容1.数值模板参数与模板模板参数2.别名模板与变长模板3.包展开与折叠表达式4.完美转发与lambda表达式模板5.消除歧义与变量模板 一、函数模板 在C中&#xff0c;函数模板是一种允许你编写可以处理…

在Windows上安装VMWare Pro 16.2(虚拟机)并从零安装CentOS 7.6镜像过程记录

本文详细记录了在Windows的VMWare Workstation Pro 16.2中安装CentOS 7.6 的过程,非常适合新手从零开始一步步安装。 文章目录 一、安装VMWare Workstation Pro 16.2并激活二、安装CentOS 7.62.1 下载CentOS7.6镜像文件2.2 创建新的虚拟机2.3 安装CentOS镜像一、安装VMWare Wo…

國際知名榮譽顧問加入台灣分析集團總部,全面升級量子電腦Q系統

近期,國際知名的榮譽顧問正式加入台灣分析集團總部,利用相同的量子數據規格訊息數據庫,進行全方位的系統升級。此次升級後,量子電腦Q系統的精確預測和迅速反應能力提升了3.29%。透過高級的數據處理和技術分析,社群用戶將在瞬息萬變的市場中保持領先地位。 “量子電腦Q系統”由資…

C语言字符、数组指针变量

目录 一、字符指针变量 二、数组指针变量 a.数组指针变量是什么 b.数组指针变量的书写格式 c.数组指针变量如何初始化 d.二维数组传参的本质 一、字符指针变量 在指针的类型中我们知道有一种指针类型为字符指针 char* 。 其一般使用&#xff1a; int main() {char ch w…

【MySQL数据库】my.ini文件参数中文注释

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&#xff0c;我将分享Web前后端开发、人工智能、机器学习、深…

LLM的基础模型7:Positional Encoding

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

数据结构笔记1 绪论,线性表

学习视频&#xff1a; 第01周c--1.2基本概念和术语1_哔哩哔哩_bilibili 01《数据结构》绪论_哔哩哔哩_bilibili 数据&#xff1a; 1.数值型的数据&#xff1a;整数&#xff0c;实数 2.非数值型的数据&#xff1a;文字、图像.. 数据元素&#xff1a;&#xff08;元素&#xf…

给孩子的端午节礼物:最新初中数学思维导图大合集+衡水高考学霸笔记,可下载打印!

大家好哇&#xff01;端午节到了&#xff0c;阿星给家里有孩子的伙伴们一份礼物哦&#xff01;今天给大家带来一个超级实用的学习神器——思维导图法&#xff0c;最新版的初中数学思维导图大合集&#xff01; 这可不是我吹哦&#xff0c;连哈佛、剑桥大学都在用的高级学习方法…

JavaScript事件监听之其它事件(页面加载事件、元素滚动事件、页面尺寸事件、M端事件)

目录 1. 页面加载事件(load、DOMContentLoaded)2. 元素滚动事件(scroll)3. 页面尺寸事件3.1 resize3.2 获取元素宽高3.3 获取元素位置(offsetLeft和offsetTop、getBoundingClientRect) 4. M端事件 1. 页面加载事件(load、DOMContentLoaded) load事件&#xff1a; 使用场景: 等…

JVM 虚拟机

JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机&#xff0c;虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机有&#xff1a;JVM、VMwave、Virtual Box等。JVM 是一台被定制过的现实当中不存在的计算…

流量录制学习

AREX Cloud | AREX (arextest.com) 流量录制学习&#xff0c;比vivo的moonbox要好用

【QT5】<总览四> QT常见绘图、图表及动画

文章目录 前言 一、QFile类读写文件 二、QPainter绘简单图形 三、QChart图表 四、QPropertyAnimation属性动画 五、Q_PROPERTY宏简介 六、自定义属性动画 前言 承接【QT5】&#xff1c;总览三&#xff1e; QT常用控件。若存在版权问题&#xff0c;请联系作者删除&#…

C语言过度C++语法补充(面向对象之前语法)

目录 1. C相较于C语言新增的语法 0. C 中的输入输出 1. 命名空间 1. 我们如何定义一个命名空间&#xff1f; 2. 如何使用一个命名空间 3. 命名空间中可以定义什么&#xff1f; 4. 在 相同或者不同 的文件中如果出现 同名的命名空间 会如何&#xff1f; 5. 总结~~撒花~~…

社区服务支持

社区服务支持 原创 小王搬运工 时序课堂 2024-06-07 19:29 四川 &#x1f31f; 邀请函 | 加入我们的时序数据挖掘社区 &#x1f680; 尊敬的数据爱好者们&#xff0c; 我们诚挚地邀请您加入我们的专业社区——时序数据挖掘社区&#xff0c;一个专注于时序数据分析、挖掘与应…

网络空间安全数学基础·同余式

6.1 剩余系&#xff08;掌握&#xff09; 6.2 同余式概念与一次同余式&#xff08;熟练&#xff09; 6.3 中国剩余定理&#xff08;熟练&#xff09; 6.1 剩余系 设m是正整数&#xff0c;模m同余的全体整数是一个模m剩余类&#xff0c;即可表示为a qmr&#xff0c; 0≤r<…

ssti模板注入

一、Flask应用 1、介绍 定义 Flask&#xff1a;是一个使用Python编写的轻量级web应用框架。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。 特点 良好的文档、丰富的插件、包含开发服务器和调试器、集成支持单元测试、RESTful请求调度、支持安全cookies、基于Unicode。 …

Go微服务: 关于TCC分布式事务

TCC 分布式事务 T: Try 预处理, 尝试执行&#xff0c;完成所有的业务检查&#xff0c;做好一致性&#xff0c;预留必要的业务资源&#xff0c;做好准隔离性C: Confirm 确认&#xff0c;如果所有的分支Try都成功了, 就到了这个阶段, Confirm 是真正执行业务的过程, 不做任何业务…