使用pandas进行数据分析

文章目录

  • 1.pandas的特点
  • 2.Series
    • 2.1新建Seriws
    • 2.2使用标签来选择数据
    • 2.3 通过指定位置选择数据
    • 2.4 使用布尔值选择数据
    • 2.5 其他操作
      • 2.5.1 修改数据
      • 2.5.2 统计操作
      • 2.5.3 缺失数据处理
  • 3.DataFrame
    • 3.1 新建 DataFrame
    • 3.2 选择数据
      • 3.2.1 使用标签选择数据
      • 3.2.2 使用 iloc 选择数据
      • 3.2.3 使用指定列名选择数据
      • 3.2.4 使用布尔值选择数据
    • 3.3 修改数据
    • 3.4 统计操作
    • 3.5 处理缺失数据
  • 4.读取格式各样的数据
    • 4.1 读取 CSV 格式文件
    • 4.2 读取 Excel 文件
    • 4.3 读取 SQL 文件
    • 4.4 读取 HTML 文件
  • 5.数据预处理
    • 5.1 使用布尔值筛选数据
    • 5.2 使用 where 方法筛选数据
    • 5.3 修改数据
    • 5.4 缺失值处理
    • 5.5 排序
  • 6.统计计算
    • 6.1 常见的统计函数
        • 描述性统计
        • 分布和形状
        • 相关性
        • 自定义统计
    • 6.2 快速统计汇总
  • 7.交叉统计
    • 7.1 使用 groupby() 统计
    • 7.2 使用 pivot_table() 统计
  • 8.时间序列的数据处理
    • 8.1 使用时间序列数据的函数
    • 8.2 DatetimeIndex
    • 8.3 筛选时间序列数据
    • 8.4 采样

pandas是具有非常直观且容易操作的索引数据的python第三方软件包。pandas主要有两种数据结构,分别是Series和DataFrame,其广泛用于金融、统计、社会科学等领域的数据分析工作。

1.pandas的特点

  1. 数据结构
    • DataFrame:类似于 Excel 表格,可以存储不同类型的数据列。
    • Series:一维数组,可以存储任何数据类型(整数、字符串、浮点数、Python 对象等)。
  2. 数据操作
    • 支持大量的数据操作,包括数据清洗、处理缺失数据、重采样时间序列数据等。
    • 提供了丰富的数据对齐和集成处理功能。
  3. 数据索引
    • 支持多种索引方式,包括时间戳、整数索引、标签索引等。
    • 可以对数据进行高效的切片、筛选和分组。
  4. 时间序列功能
    • 强大的时间序列功能,可以轻松处理和分析时间序列数据。
  5. 数据合并
    • 提供了多种数据合并和连接工具,如 mergejoin 和 concat
  6. 数据分组
    • 通过 groupby 功能,可以对数据进行分组,并应用聚合函数。
  7. 数据重塑
    • 支持 pivotmelt 等操作,可以轻松地重塑数据结构。
  8. 处理大数据
    • 虽然 Pandas 不是为处理大规模数据集而设计的,但它可以与 Dask 等库结合使用,以处理超出内存限制的大型数据集。
  9. 集成性
    • 可以与 NumPy、SciPy、Matplotlib、Scikit-learn 等其他 Python 数据科学库无缝集成。
  10. 性能
    • 底层使用 Cython 和 C 语言编写,提供了快速的数据操作性能。
  11. 易用性
    • 提供了直观的 API,使得数据操作和分析变得简单直观。
  12. 文档和社区
    • 拥有详细的官方文档和活跃的社区,用户可以轻松找到帮助和资源。

2.Series

在 Pandas 库中,Series 是一种一维数组结构,可以存储任何数据类型(整数、字符串、浮点数、Python 对象等)。它类似于 Python 中的列表(list)或 NumPy 的一维数组,但 Series 更加强大,因为它可以存储不同的数据类型,并且每个元素都有一个标签(称为索引)。

2.1新建Seriws

可以使用pandas.Series类来新建Series,第一个参数可以带入(列表、元组、字典、numpy.ndarry)等数据。

ser = pd.Series([1,2,3,4,5],index=list('abcde'))  
ser

如果省略index的话会默认从0开始创建索引

pd.Series([1,2,3,4,5])

2.2使用标签来选择数据

使用loc方法可以根据标签来选择数据

#指定标签  
print(ser.loc['b'])  #不使用loc  
print(ser['b'])  #指定标签范围  
print(ser.loc['a':'c'])

你已经很好地概述了 Pandas 中 Series 的创建和基本访问方法。下面我将补充一些细节和额外的操作,以帮助你更好地理解 Series 的使用。

2.3 通过指定位置选择数据

在 Pandas 中,除了使用标签(索引)来选择数据外,还可以通过位置(整数索引)来选择数据。这与 Python 列表的索引类似。以下是一些示例:

import pandas as pd# 创建 Series
ser = pd.Series([1, 2, 3, 4, 5], index=list('abcde'))# 使用位置选择第一个元素
print(ser.iloc[0])  # 输出: 1# 使用位置选择多个元素
print(ser.iloc[0:3])  # 输出: a    1, b    2, c    3# 使用位置选择最后一个元素
print(ser.iloc[-1])  # 输出: 5

2.4 使用布尔值选择数据

布尔索引是 Pandas 中非常强大的一个功能,它允许你根据条件选择数据。以下是一些示例:

import pandas as pd# 创建 Series
ser = pd.Series([1, 2, 3, 4, 5], index=list('abcde'))# 使用布尔索引选择大于2的元素
print(ser[ser > 2])# 使用布尔索引选择小于等于3的元素
print(ser[ser <= 3])

2.5 其他操作

2.5.1 修改数据

你可以直接通过索引来修改 Series 中的数据:

ser['a'] = 10  # 修改索引为 'a' 的元素
print(ser)

2.5.2 统计操作

Series 提供了许多内置的统计方法,如 sum(), mean(), max(), min(), std(), var() 等:

print(ser.sum())  # 求和
print(ser.mean())  # 求平均值
print(ser.max())  # 求最大值
print(ser.min())  # 求最小值
print(ser.std())  # 标准差
print(ser.var())  # 方差

2.5.3 缺失数据处理

如果 Series 中包含缺失值(NaN),Pandas 提供了多种处理方法,如 dropna(), fillna() 等:

ser = pd.Series([1, 2, None, 4, 5])
print(ser.dropna())  # 删除缺失值ser.fillna(0, inplace=True)  # 将缺失值填充为0
print(ser)

这些操作使得 Series 成为一个非常灵活和强大的数据结构,适用于各种数据分析任务。

3.DataFrame

DataFrame 是 Pandas 中的另一个核心数据结构,它是一个二维表格型数据结构,可以被看作是由多个 Series 组成的(每个 Series 作为 DataFrame 的一列),所有 Series 共享一个索引。

3.1 新建 DataFrame

DataFrame 可以通过多种方式创建,例如从字典、列表、NumPy 数组、已有的 DataFrame 或者直接从数据文件(如 CSV)中读取。

import pandas as pd# 从字典创建 DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],'Age': [28, 23, 34, 29],'City': ['New York', 'Paris', 'Berlin', 'London']}
df = pd.DataFrame(data)
print(df)# 从列表创建 DataFrame
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
print(df)# 从 NumPy 数组创建 DataFrame
import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
print(df)

3.2 选择数据

3.2.1 使用标签选择数据

使用 .loc 可以基于标签选择数据。它允许你选择行和列。

# 选择行标签为 'John' 的行
print(df.loc[df['Name'] == 'John'])# 选择列 'Age' 和 'City'
print(df.loc[:, ['Age', 'City']])

3.2.2 使用 iloc 选择数据

使用 .iloc 可以基于整数位置选择数据。它允许你选择行和列。

# 选择第一行
print(df.iloc[0])# 选择前两行和前两列
print(df.iloc[:2, :2])

3.2.3 使用指定列名选择数据

直接使用列名可以快速选择列。

# 选择 'Age' 列
print(df['Age'])

3.2.4 使用布尔值选择数据

布尔索引允许你根据条件选择行。

# 选择 'Age' 大于 25 的行
print(df[df['Age'] > 25])

3.3 修改数据

修改 DataFrame 中的数据与 Series 类似,可以直接通过标签或位置进行修改。

# 修改 'John' 的 'City' 为 'Los Angeles'
df.loc[df['Name'] == 'John', 'City'] = 'Los Angeles'
print(df)

3.4 统计操作

DataFrame 提供了丰富的统计方法,可以对整个数据框或特定的列进行操作。

# 计算每列的描述性统计
print(df.describe())# 计算 'Age' 列的平均值
print(df['Age'].mean())

3.5 处理缺失数据

Series 类似,DataFrame 也支持多种处理缺失数据的方法。

# 添加缺失值
df.loc[3, 'Age'] = None# 删除包含缺失值的行
print(df.dropna())# 填充缺失值
df.fillna(value=30, inplace=True)
print(df)

DataFrame 是进行数据科学和分析工作时非常强大的工具,它提供了灵活的数据操作和分析功能。

4.读取格式各样的数据

Pandas 提供了多种函数来读取不同格式的数据文件,这些函数使得数据导入变得非常简单和直接。以下是一些常用的数据读取方法:

4.1 读取 CSV 格式文件

CSV(逗号分隔值)文件是一种常见的数据交换格式。Pandas 的 read_csv 函数可以轻松读取 CSV 文件。

import pandas as pd# 读取 CSV 文件
df = pd.read_csv('path_to_file.csv')# 显示前几行数据
print(df.head())

read_csv 函数提供了许多参数来处理不同的 CSV 格式,例如指定分隔符、处理缺失值、选择特定的列等。

4.2 读取 Excel 文件

Excel 文件是一种广泛使用的电子表格格式。Pandas 的 read_excel 函数可以用来读取 Excel 文件。

# 读取 Excel 文件
df = pd.read_excel('path_to_file.xlsx')# 显示前几行数据
print(df.head())

read_excel 函数允许你指定工作表、读取特定的单元格范围等。

4.3 读取 SQL 文件

Pandas 可以通过 SQL Alchemy 连接到数据库,并使用 read_sqlread_sql_query 函数读取 SQL 数据。

from sqlalchemy import create_engine
import pandas as pd# 创建数据库连接引擎
engine = create_engine('database_connection_string')# 读取 SQL 查询结果
df = pd.read_sql_query('SELECT * FROM table_name', con=engine)# 显示前几行数据
print(df.head())

这里需要一个有效的数据库连接字符串,以及对应的数据库驱动。

4.4 读取 HTML 文件

Pandas 的 read_html 函数可以解析 HTML 中的 <table> 标签,并将其转换为 DataFrame 对象。

# 读取 HTML 文件
df = pd.read_html('path_to_file.html')# df 是一个 DataFrame 列表,选择第一个 DataFrame
df = df[0]# 显示前几行数据
print(df.head())

read_html 函数会尝试找到 HTML 文件中所有的 <table> 标签,并返回一个包含所有表格数据的 DataFrame 列表。

在读取这些文件时,Pandas 允许你指定各种参数来处理文件中的特定格式,例如编码、列名、数据类型等。这些函数大大简化了从不同数据源导入数据的过程。

5.数据预处理

数据预处理是数据分析和机器学习项目中的关键步骤,Pandas 提供了多种工具来帮助我们完成这些任务。以下是一些常见的数据预处理技术:

5.1 使用布尔值筛选数据

布尔索引允许我们根据条件筛选数据。我们可以对 DataFrameSeries 使用布尔表达式来选择满足条件的行或列。

import pandas as pd# 假设我们有以下 DataFrame
df = pd.DataFrame({'Age': [25, 30, 35, 40, 45],'Name': ['John', 'Anna', 'Peter', 'Linda', 'Michael']
})# 使用布尔值筛选年龄大于 30 的人
filtered_df = df[df['Age'] > 30]
print(filtered_df)

5.2 使用 where 方法筛选数据

where 方法可以根据一个条件表达式来过滤数据,返回一个满足条件的布尔型 DataFrameSeries

# 使用 where 方法筛选年龄大于 30 的人
filtered_df = df.where(df['Age'] > 30)
print(filtered_df)

where 方法返回的结果是对原始数据的布尔型掩码,如果需要替换不满足条件的值,可以结合 fillnamask 方法使用。

5.3 修改数据

直接通过标签或位置修改数据。

# 修改特定行的数据
df.loc[df['Name'] == 'John', 'Age'] = 28# 修改特定列的数据
df['Age'] = df['Age'] + 1
print(df)

5.4 缺失值处理

缺失值处理是数据预处理中的一个重要部分。Pandas 提供了多种方法来处理缺失值。

# 删除包含缺失值的行
df_cleaned = df.dropna()# 填充缺失值
df_filled = df.fillna(value=0)
print(df_filled)

还可以使用 interpolate 方法来进行插值填充。

5.5 排序

排序是数据分析中的常见操作,Pandas 提供了 sort_values 方法来对数据进行排序。

# 按年龄升序排序
sorted_df = df.sort_values(by='Age')# 按年龄降序排序
sorted_df_desc = df.sort_values(by='Age', ascending=False)
print(sorted_df)
print(sorted_df_desc)

排序时可以指定多个列,并设置是否升序或降序。

这些是数据预处理中常用的一些操作,Pandas 提供的这些功能使得数据清洗和准备变得非常高效和方便。

6.统计计算

统计计算是数据分析中的核心部分,Pandas 提供了丰富的函数来进行描述性统计分析。以下是一些常用的统计计算方法:

6.1 常见的统计函数

描述性统计
  • count(): 计算非NA/null值的数量。
  • mean(): 计算平均值。
  • median(): 计算中位数。
  • min()max(): 计算最小值和最大值。
  • std()var(): 计算标准差和方差。
  • sum(): 计算总和。
  • size(): 返回数据的总大小。
import pandas as pd# 创建一个简单的 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],'B': [10, 20, 30, 40, 50]
})# 计算描述性统计
print(df.describe())
分布和形状
  • skew(): 计算偏度(数据分布的不对称性)。
  • kurt(): 计算峰度(数据分布的“尾部”程度)。
print(df.skew())
print(df.kurt())
相关性
  • corr(): 计算列之间的相关系数。
print(df.corr())
自定义统计
  • agg(): 允许应用多个统计函数。
print(df.agg(['mean', 'max', 'min']))

6.2 快速统计汇总

Pandas 的 describe() 方法可以快速提供一个数据框的汇总统计,包括平均值、标准差、最小值、最大值等。

# 对整个 DataFrame 进行描述性统计
print(df.describe())# 对指定列进行描述性统计
print(df[['A', 'B']].describe())

describe() 方法默认计算数值列的统计信息,但也可以用于字符串类型的列,此时会显示计数、唯一值数量、最常见值等信息。

对于分类数据,可以使用 value_counts() 方法来查看每个类别的频率。

# 假设我们有一个分类列
df['Category'] = ['A', 'B', 'A', 'C', 'B']
print(df['Category'].value_counts())

统计计算是数据分析的基础,Pandas 提供的这些功能使得从数据中提取有意义的统计信息变得非常简单。通过这些统计函数,我们可以快速了解数据的分布、中心趋势和离散程度。

7.交叉统计

在 Pandas 中,groupby()pivot_table() 是两个非常强大的工具,它们可以帮助我们对数据进行分组和汇总统计。

7.1 使用 groupby() 统计

groupby() 方法允许我们根据一个或多个键将数据分组,然后对每个组应用聚合函数,如 sum()mean()count() 等。

import pandas as pd# 创建一个示例 DataFrame
df = pd.DataFrame({'Category': ['A', 'B', 'A', 'B', 'C', 'A', 'B', 'C'],'Values': [10, 20, 30, 40, 50, 60, 70, 80]
})# 根据 'Category' 列分组,并计算每个组的总和
grouped_sum = df.groupby('Category')['Values'].sum()
print(grouped_sum)# 可以同时应用多个聚合函数
grouped_stats = df.groupby('Category')['Values'].agg(['sum', 'mean', 'count'])
print(grouped_stats)

groupby() 也可以用于多级分组,即根据多个列进行分组。

# 假设我们有另一个列 'Subcategory'
df['Subcategory'] = ['X', 'X', 'Y', 'Y', 'X', 'Y', 'X', 'Y']
grouped_multi = df.groupby(['Category', 'Subcategory'])['Values'].sum()
print(grouped_multi)

7.2 使用 pivot_table() 统计

pivot_table() 方法类似于 groupby(),但它提供了更多的灵活性,允许我们重新排列数据,创建一个透视表,其中指定的列成为行和列索引,而其他列则用于计算值。

# 创建透视表,以 'Category' 为行索引,'Subcategory' 为列索引,计算 'Values' 的总和
pivot_table = df.pivot_table(index='Category', columns='Subcategory', values='Values', aggfunc='sum')
print(pivot_table)

pivot_table() 方法非常灵活,可以处理多个聚合函数,并且可以填充缺失值,处理缺失的组合等。

# 创建透视表,并填充缺失值
pivot_table_filled = df.pivot_table(index='Category', columns='Subcategory', values='Values', aggfunc='sum', fill_value=0)
print(pivot_table_filled)

pivot_table() 还允许我们指定多个聚合函数,并对结果进行进一步的处理。

# 创建透视表,并应用多个聚合函数
pivot_table_multi = df.pivot_table(index='Category', columns='Subcategory', values='Values', aggfunc=['sum', 'mean'])
print(pivot_table_multi)

这些工具在数据分析中非常有用,特别是当你需要对数据进行分组分析或创建复杂的汇总报表时。通过 groupby()pivot_table(),我们可以轻松地对数据进行多维度的探索和分析。

8.时间序列的数据处理

时间序列数据是一系列按照时间顺序排列的数据点。在金融、气象、经济和其他许多领域中,时间序列分析是一个重要的分析工具。Pandas 提供了强大的工具来处理时间序列数据。

8.1 使用时间序列数据的函数

Pandas 提供了一系列专门用于处理时间序列数据的函数。这些函数可以帮助我们对时间序列数据进行索引、重采样、移动窗口统计等操作。

import pandas as pd
import datetime as dt# 创建时间序列数据
dates = pd.date_range('20230101', periods=6)
values = [10, 20, 25, 30, 40, 50]
ts = pd.Series(values, index=dates)# 访问时间序列数据
print(ts)# 时间序列的日期偏移
ts_1day_later = ts.shift(1)
print(ts_1day_later)# 时间序列的滚动统计
rolling_mean = ts.rolling(window=3).mean()
print(rolling_mean)

8.2 DatetimeIndex

DatetimeIndex 是 Pandas 中专门用于时间序列的索引对象。它能够处理日期和时间数据,并提供丰富的时间序列功能。

# 创建 DatetimeIndex
index = pd.DatetimeIndex(['2023-01-01', '2023-01-02', '2023-01-03'])# 将 DatetimeIndex 设置为范围
date_range = pd.date_range(start='2023-01-01', end='2023-01-10', freq='D')# 创建时间序列数据
ts_with_range = pd.Series(range(10), index=date_range)
print(ts_with_range)

8.3 筛选时间序列数据

可以使用 DatetimeIndex 来筛选时间序列数据。

# 筛选特定时间段的数据
selected_ts = ts['2023-01-02':'2023-01-04']
print(selected_ts)

8.4 采样

时间序列数据的采样是指从时间序列中提取特定时间点的数据。Pandas 允许我们使用 resample 方法对时间序列数据进行采样。

# 重采样时间序列数据
resampled_ts = ts.resample('D').mean()  # 每日平均值
print(resampled_ts)# 可以指定不同的频率
resampled_ts_monthly = ts.resample('M').mean()  # 每月平均值
print(resampled_ts_monthly)

在处理时间序列数据时,Pandas 提供的这些工具可以帮助我们有效地管理和分析数据。通过时间序列分析,我们可以识别数据中的模式、趋势和季节性变化,这对于预测和决策制定非常有价值。

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

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

相关文章

yolov11的onnx模型C++ 调用

yolov11的onnx模型C调用 效果图一、python调用二、onnx模型导出三、python的onnx调用调用检测模型调用分割模型 四、C的onnx模型调用五 、视频流的检测后续 效果图 一、python调用 本文只记录生成的yolov11模型如何调用&#xff0c;其他可参考各种yolov11博客 模型下载&#x…

万年历制作

#include<stdio.h> int main() { int year0, month0, day0, y0, m0&#xff1b; scanf_s("%d %d", &year,&month); //判断闰年 for(y1900;y<year;y) { if ((y % 4 0 && y % 100 ! 0) || y % 400 0) …

redis内存打满了怎么办?

1、设置maxmemory的大小 我们需要给 Redis设置maxmemory的大小&#xff0c;如果不设置的话&#xff0c;它会受限于系统的物理内存和系统对内存的管理机制。 2、设置内存的淘汰策略 内存的淘汰策略分为 8 种&#xff0c;从淘汰范围来说分为从所有的key中淘汰和从设置过期时间…

C语言[求x的y次方]

C语言——求x的y次方 这段 C 代码的目的是从用户输入获取两个整数 x 和 y &#xff0c;然后计算 x 的 y 次幂&#xff08;不过这里有个小错误&#xff0c;实际计算的是 x 的 (y - 1) 次幂&#xff0c;后面会详细说&#xff09;&#xff0c;最后输出结果。 代码如下: #include…

Apache Paimon Catalog

Paimon Catalog可以持久化元数据&#xff0c;当前支持两种类型的metastore&#xff1a; 文件系统&#xff08;默认&#xff09;&#xff1a;将元数据和表文件存储在文件系统中。hive&#xff1a;在 hive metastore中存储元数据。用户可以直接从 Hive 访问表。 2.2.1 文件系统…

centeros7 编译ffmpeg

使用yum安装的路似乎已经堵住了&#xff0c;请求的镜像全是404或503 1.打开终端并使用yum安装EPEL存储库(Extra Packages for Enterprise Linux)&#xff1a;sudo yum install epel-release2.接下来&#xff0c;使用以下命令来安装FFmpeg&#xff1a;sudo yum install ffmpeg …

remote: HTTP Basic: Access denied

解决方法 输入&#xff1a; git config --system --unset credential.helper 再次进行 Git 操作&#xff0c;输入正确的用户名&#xff0c;密码即可。

static、 静态导入、成员变量的初始化、单例模式、final 常量(Content)、嵌套类、局部类、抽象类、接口、Lambda、方法引用

static static 常用来修饰类的成员&#xff1a;成员变量、方法、嵌套类 成员变量 被static修饰&#xff1a;类变量、成员变量、静态字段 在程序中只占用一段固定的内存&#xff08;存储在方法区&#xff09;&#xff0c;所有对象共享可以通过实例、类访问 (一般用类名访问和修…

OpenHarmony(1)开发环境搭建

一&#xff1a;开源项目 OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目&#xff0c;目标是面向全场景、全连接、全智能时代&#xff0c;基于开源的方式&#xff0c;搭建一个智能终端设备操作系统的框架和平台&#xff0…

使用SQL在PostGIS中创建各种空间数据

#1024程序员节&#xff5c;征文# 一、目录 1. 概述 2. 几何&#xff08;Geometry&#xff09;类型 创建点 创建线 创建面 3. 地理&#xff08;Geography&#xff09;类型 地理点&#xff08;GEOGRAPHY POINT&#xff09; 地理线串&#xff08;GEOGRAPHY LINESTRING&#xff…

Redis 单机、主从、哨兵和集群架构详解和搭建

目录 前言 单机部署 检查安装 gcc 环境 下载安装 Redis 启动 Redis 关闭 Redis 配置Redis 主从部署 整体架构图 主从复制配置 重启 Redis 验证 主从复制的作⽤ 主从复制缺点 哨兵部署&#xff08;Sentinel&#xff09; 整体架构图 哨兵模式配置 启动哨兵 验证…

MySQL-32.索引-操作语法

一.语法 二.代码实现 指定某个字段为主键&#xff0c;其实就是建立一个主键索引。而指定某个字段唯一&#xff0c;就是建立一个唯一索引。 -- 索引 -- 创建&#xff1a;为tb_emp表的name字段建立一个索引 create index idx_emp_name on tb_emp(name);-- 查询&#xff1a;查…

【智能大数据分析 | 实验四】Spark实验:Spark Streaming

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘&#xff0c;以提取有价值的信息和洞察。它结合了大数据技术、人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&a…

基于java的山区环境监督管理系统(源码+定制+开发)环境数据可视化、环境数据监测、 环境保护管理 、污染防治监测系统 大数据分析

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

《Python游戏编程入门》注-第3章3

《Python游戏编程入门》的“3.2.4 Mad Lib”中介绍了一个名为“Mad Lib”游戏的编写方法。 1 游戏玩法 “Mad Lib”游戏由玩家根据提示输入一些信息&#xff0c;例如男人姓名、女人姓名、喜欢的食物以及太空船的名字等。游戏根据玩家输入的信息编写出一个故事&#xff0c;如图…

Postgresql 配置数据库表添加主键自增id

#1024程序员节&#xff5c;征文# 在 PostgreSQL 数据库中&#xff0c;如果你想创建一个自增的 ID 字段&#xff0c;通常会使用序列&#xff08;sequence&#xff09;配合默认值或者使用带有自动递增特性的 SERIAL 类型。以下是两种常见的方法来实现自增 ID&#xff1a; 使用 …

图论BFS

 D1. The Endspeaker (Easy Version) time limit per test 2 seconds memory limit per test 256 megabytes  This is the easy version of this problem. The only difference is that you only need to output the minimum total cost of operations in t…

Docker 部署 Jaeger

Jaeger 的主要作用如下&#xff1a; 分布式追踪 Jaeger 是一个开源的分布式追踪系统&#xff0c;用于监控和排查微服务架构中的复杂问题。它可以跟踪请求在不同服务之间的传播路径&#xff0c;帮助开发者理解系统中各个组件之间的调用关系。 性能分析 通过收集和分析请求的执行…

基于Gin和GORM的在线判题系统后端

项目地址&#xff1a;基于Gin和GORM的在线判题系统后端 一、开发环境与API测试工具 开发环境 Go1.23,VSCode,Gin框架&#xff0c;GORM框架 gin-swagger swagger是一个用于描述和文档化 RESTful API 的开源工具&#xff0c;它可以帮助开发者生成交互式文档&#xff0c;并且…

【C++】—— 模板进阶

【C】—— 模板进阶 1 非类型模板参数1.1 什么是非类型模板参数1.2 非类型模板参数对比宏的优势1.3 array 简单了解 2 模板的特化2.1 引子2.2 函数模板特化2.3 函数模板特化的坑2.4 类模板的特化2.4.1 全特化2.4.2 偏特化&#xff08;半特化&#xff09;2.4.3 选择2.4.4 偏特化…