Python酷库之旅-第三方库Pandas(010)

目录

一、用法精讲

22、pandas.read_hdf函数

22-1、语法

22-2、参数

22-3、功能

22-4、返回值

22-5、说明

22-6、用法

22-6-1、数据准备

22-6-2、代码示例

22-6-3、结果输出

23、pandas.HDFStore.put方法

23-1、语法

23-2、参数

23-3、功能

23-4、返回值

23-5、说明

23-6、用法

23-6-1、数据准备

23-6-2、代码示例

23-6-3、结果输出 

24、pandas.HDFStore.append方法

24-1、语法

24-2、参数

24-3、功能

24-4、返回值

24-5、说明

24-6、用法

24-6-1、数据准备

24-6-2、代码示例

24-6-3、结果输出 

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

22、pandas.read_hdf函数
22-1、语法
# 22、pandas.read_hdf函数
pandas.read_hdf(path_or_buf, key=None, mode='r', errors='strict', where=None, start=None, stop=None, columns=None, iterator=False, chunksize=None, **kwargs)
Read from the store, close it if we opened it.

Retrieve pandas object stored in file, optionally based on where criteria.

Warning

Pandas uses PyTables for reading and writing HDF5 files, which allows serializing object-dtype data with pickle when using the “fixed” format. Loading pickled data received from untrusted sources can be unsafe.

See: https://docs.python.org/3/library/pickle.html for more.

Parameters:
path_or_bufstr, path object, pandas.HDFStore
Any valid string path is acceptable. Only supports the local file system, remote URLs and file-like objects are not supported.

If you want to pass in a path object, pandas accepts any os.PathLike.

Alternatively, pandas accepts an open pandas.HDFStore object.

keyobject, optional
The group identifier in the store. Can be omitted if the HDF file contains a single pandas object.

mode{‘r’, ‘r+’, ‘a’}, default ‘r’
Mode to use when opening the file. Ignored if path_or_buf is a pandas.HDFStore. Default is ‘r’.

errorsstr, default ‘strict’
Specifies how encoding and decoding errors are to be handled. See the errors argument for open() for a full list of options.

wherelist, optional
A list of Term (or convertible) objects.

startint, optional
Row number to start selection.

stopint, optional
Row number to stop selection.

columnslist, optional
A list of columns names to return.

iteratorbool, optional
Return an iterator object.

chunksizeint, optional
Number of rows to include in an iteration when using an iterator.

**kwargs
Additional keyword arguments passed to HDFStore.

Returns:
object
The selected object. Return type depends on the object stored.
22-2、参数

22-2-1、path_or_buf(必须)字符串或文件样对象(如文件句柄或类似文件的对象),指定要读取的HDF5文件的路径或文件对象。

22-2-2、key(可选,默认值为None)字符串或列表,指定要从HDF5文件中读取的键(即数据集/表的名称)。如果文件包含多个数据集,则需要使用此参数来指定要读取哪一个;如果未指定,则尝试读取默认的数据集(如果存在)。

22-2-3、mode(可选,默认值为'r')字符串,指定文件打开模式。其他可能的值包括'r+'(读写模式),但注意在使用pandas时,通常不需要写模式,因为read_hdf专门用于读取数据。

22-2-4、errors(可选,默认值为'strict')字符串,指定错误处理模式。默认为'strict',表示如果发生错误则抛出异常,其他选项包括'ignore',表示忽略错误。

22-2-5、where(可选,默认值为None)字符串或表达式,用于在读取数据之前对数据进行过滤,这可以是一个字符串表达式,Pandas会尝试在读取数据时应用此表达式以筛选行。

22-2-6、start/stop(可选,默认值为None)用于指定要读取的行范围(基于0的索引),这可以用于分块读取大型数据集的一部分。

22-2-7、columns(可选,默认值为None)字符串或列表,指定要读取的列名列表。如果指定,则只读取这些列。

22-2-8、iterator(可选,默认值为False)布尔值,如果设置为True,则返回一个迭代器,该迭代器在每次迭代时返回下一块数据(由chunksize指定大小),这对于处理非常大的数据集非常有用,因为它允许逐个处理数据块而不是一次性将所有数据加载到内存中。

22-2-9、chunksize(可选,默认值为None)整数,当iterator=True时有效。指定每次迭代时返回的块的大小(以行为单位)。

22-2-10、**kwargs(可选)其他关键字参数,这些参数将被传递给底层的PyTables或HDFStore对象,这些参数通常用于控制更底层的HDF5文件操作,如压缩选项等。

22-3、功能

        从HDF5文件中读取数据。

22-4、返回值

22-4-1、DataFrame或Series:默认情况下,read_hdf返回一个Pandas DataFrame对象,该对象包含了从HDF5文件中读取的数据,如果HDF5数据集只包含一列,并且用户没有指定squeeze=False(尽管在read_hdf的典型用法中,squeeze参数不是直接暴露的,但在Pandas的其他读取函数中,如read_csv,squeeze可以用来控制单列数据的返回类型),则可能会返回一个Pandas Series对象。

22-4-2、迭代器:如果设置了iterator=True,则read_hdf返回一个迭代器,该迭代器在每次迭代时返回下一块数据(由chunksize指定大小),这允许用户以流式方式处理大型数据集,减少内存使用。

22-5、说明

        HDF5(Hierarchical Data Format version 5)是一种用于存储和组织大量数据的文件格式,它特别适合于存储和组织大量科学数据。

22-6、用法
22-6-1、数据准备
# 22、pandas.read_hdf函数
# 22-1、创建.h5文件example.h5
import pandas as pd
import numpy as np
# 创建一个示例DataFrame
data = {
    'column1': np.random.randint(0, 100, size=100),
    'column2': np.random.random(size=100),
    'column3': np.random.choice(['A', 'B', 'C', 'D'], size=100)
}
df = pd.DataFrame(data)
# 定义HDF5文件路径和要保存的key
hdf5_file_path = 'example.h5'
key = 'dataset1'
try:
    # 使用to_hdf函数将DataFrame写入HDF5文件
    df.to_hdf(hdf5_file_path, key=key, mode='w', format='table', complevel=9, complib='blosc')
    print(f"数据已成功写入 {hdf5_file_path} 文件中的 {key} 数据集")

    # 验证写入的文件
    read_df = pd.read_hdf(hdf5_file_path, key=key)
    print("读取写入的数据:")
    print(read_df.head())
except Exception as e:
    print(f"发生错误: {e}")
22-6-2、代码示例
# 22、pandas.read_hdf函数
# 22-2、读取HDF5文件
import pandas as pd
# 定义HDF5文件路径和要读取的key
hdf5_file_path = 'example.h5'
key = 'dataset1'
# 使用read_hdf函数读取HDF5文件
try:
    df = pd.read_hdf(hdf5_file_path, key=key, mode='r', errors='strict', where=None, start=None, stop=None, columns=None, iterator=False, chunksize=None)
    print("数据读取成功:")
    print(df)
except Exception as e:
    print(f"读取HDF5文件时发生错误: {e}")
22-6-3、结果输出
# 22、pandas.read_hdf函数
# 22-1、创建.h5文件example.h5
# 数据已成功写入 example.h5 文件中的 dataset1 数据集
# 读取写入的数据:
#    column1   column2 column3
# 0       40  0.530045       C
# 1       80  0.769853       C
# 2        9  0.437948       B
# 3       47  0.896335       D
# 4       12  0.017834       B

# 22-2、读取HDF5文件
# 数据读取成功:
#     column1   column2 column3
# 0        40  0.530045       C
# 1        80  0.769853       C
# 2         9  0.437948       B
# 3        47  0.896335       D
# 4        12  0.017834       B
# ..      ...       ...     ...
# 95       70  0.172173       B
# 96        2  0.077893       C
# 97        4  0.825904       D
# 98       52  0.092274       A
# 99        7  0.210899       C
# 
# [100 rows x 3 columns]
23、pandas.HDFStore.put方法
23-1、语法
# 23、pandas.HDFStore.put函数
HDFStore.put(key, value, format=None, index=True, append=False, complib=None, complevel=None, min_itemsize=None, nan_rep=None, data_columns=None, encoding=None, errors='strict', track_times=True, dropna=False)
Store object in HDFStore.

Parameters:
keystr
value{Series, DataFrame}
format‘fixed(f)|table(t)’, default is ‘fixed’
Format to use when storing object in HDFStore. Value can be one of:

'fixed'
Fixed format. Fast writing/reading. Not-appendable, nor searchable.

'table'
Table format. Write as a PyTables Table structure which may perform worse but allow more flexible operations like searching / selecting subsets of the data.

indexbool, default True
Write DataFrame index as a column.

appendbool, default False
This will force Table format, append the input data to the existing.

data_columnslist of columns or True, default None
List of columns to create as data columns, or True to use all columns. See here.

encodingstr, default None
Provide an encoding for strings.

track_timesbool, default True
Parameter is propagated to ‘create_table’ method of ‘PyTables’. If set to False it enables to have the same h5 files (same hashes) independent on creation time.

dropnabool, default False, optional
Remove missing values.
23-2、参数

23-2-1、key(必须)字符串,表示要存储的数据在HDF5文件中的键(或路径),这个键用于后续从文件中检索数据。

23-2-2、value(必须)要存储的DataFrame或Series对象。

23-2-3、format(可选,默认值为None)字符串,指定存储格式。对于表格数据,通常使用'table',它支持更复杂的查询和数据操作。对于简单的数据,可以使用'fixed',但它不支持查询。如果为None,则根据value的类型自动选择。

23-2-4、index(可选,默认值为True)布尔值,指定是否将DataFrame的索引也存储在文件中。

23-2-5、append(可选,默认值为False)布尔值,如果为True,则尝试将数据追加到已存在的键下,而不是覆盖它,这要求format='table'。

23-2-6、complib(可选,默认值为None)字符串,指定用于压缩的库。pandas支持多种压缩库,如'zlib'、'lzo'、'blosc'等,选择合适的压缩库可以显著减少文件大小,但会增加存储和检索时间。如果为None,则不压缩。

23-2-7、complevel(可选,默认值为None)整数,指定压缩级别。级别越高,压缩率越高,但处理速度越慢,范围从0(无压缩)到9(最大压缩),如果complib为None,则此参数无效。

23-2-8、min_itemsize(可选,默认值为None)字典,指定列中字符串的最小存储大小(以字节为单位),这有助于避免在追加数据时截断字符串,键是列名,值是整数。

23-2-9、nan_rep(可选,默认值为None)用于表示NaN值的字符串。默认为None,表示使用HDF5的NaN表示。

23-2-10、data_columns(可选,默认值为None)列表或布尔值,指定哪些列应该作为数据列进行索引,以便可以进行快速查询。如果为True,则所有列都作为数据列;如果为False,则没有列作为数据列;如果为列表,则列表中的列名作为数据列。

23-2-11、encoding(可选,默认值为None)字符串,指定用于写入文件的编码,这对于存储包含非ASCII字符的字符串列很有用。

23-2-12、errors(可选,默认值为'strict')字符串,指定在编码或解码字符串时如何处理错误,'strict'表示抛出异常,'ignore'表示忽略错误,'replace'表示用占位符替换错误字符。

23-2-13、track_times(可选,默认值为True)布尔值,如果为True,则跟踪数据的创建和修改时间,并作为元数据存储在文件中,这对于数据版本控制可能很有用。

23-2-14、dropna(可选,默认值为False)布尔值,当与append=True一起使用时,如果为True,则在追加之前从DataFrame中删除包含NaN值的行。注意,这仅影响要追加的数据,不会影响已存储在文件中的数据。

23-3、功能

        将一个DataFrame或Series对象保存到HDF5文件中。

23-4、返回值

        没有直接的返回值,它的主要目的是将数据写入文件,而不是返回任何数据给调用者。

23-5、说明

        无      

23-6、用法
23-6-1、数据准备
23-6-2、代码示例
# 23、pandas.HDFStore.put方法
import pandas as pd
# 创建一个示例DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [True, False, True, False, True]
}
df = pd.DataFrame(data)
# 使用HDFStore保存DataFrame
with pd.HDFStore('example.h5') as store:
    # 使用put方法将数据保存到HDF5文件中
    # 这里我们指定键为'dataset1',格式为'table',并使用Blosc压缩
    store.put('dataset1', df, format='table', complib='blosc', complevel=9)
# 从HDF5文件中读取数据
with pd.HDFStore('example.h5') as store:
    # 使用get方法(或read_hdf函数,但在这里我们使用get来展示HDFStore的用法)
    # 根据键'dataset1'检索数据
    retrieved_df = store.get('dataset1')
# 显示检索到的DataFrame
print("Retrieved DataFrame:")
print(retrieved_df)
23-6-3、结果输出 
# 23、pandas.HDFStore.put方法
# Retrieved DataFrame:
#    A  B      C
# 0  1  a   True
# 1  2  b  False
# 2  3  c   True
# 3  4  d  False
# 4  5  e   True
24、pandas.HDFStore.append方法
24-1、语法
# 24、pandas.HDFStore.append方法
HDFStore.append(key, value, format=None, axes=None, index=True, append=True, complib=None, complevel=None, columns=None, min_itemsize=None, nan_rep=None, chunksize=None, expectedrows=None, dropna=None, data_columns=None, encoding=None, errors='strict')
Append to Table in file.

Node must already exist and be Table format.

Parameters:
keystr
value{Series, DataFrame}
format‘table’ is the default
Format to use when storing object in HDFStore. Value can be one of:

'table'
Table format. Write as a PyTables Table structure which may perform worse but allow more flexible operations like searching / selecting subsets of the data.

indexbool, default True
Write DataFrame index as a column.

appendbool, default True
Append the input data to the existing.

data_columnslist of columns, or True, default None
List of columns to create as indexed data columns for on-disk queries, or True to use all columns. By default only the axes of the object are indexed. See here.

min_itemsizedict of columns that specify minimum str sizes
nan_repstr to use as str nan representation
chunksizesize to chunk the writing
expectedrowsexpected TOTAL row size of this table
encodingdefault None, provide an encoding for str
dropnabool, default False, optional
Do not write an ALL nan row to the store settable by the option ‘io.hdf.dropna_table’.
24-2、参数

24-2-1、key(必须)字符串,表示要追加数据的键(或路径)在HDF5文件中,如果键已存在且format='table',则数据将被追加到该键下的表中。

24-2-2、value(必须)要追加的DataFrame或Series对象。

24-2-3、 format(可选,默认值为None)字符串,指定存储格式。对于追加操作,通常使用'table',因为它支持追加和复杂查询。如果为None,则根据value的类型和已存在的数据集(如果有的话)来推断。

24-2-4、 axes(可选,默认值为None)已弃用,不推荐使用。

24-2-5、 index(可选,默认值为True)布尔值,指定是否将DataFrame的索引也追加到文件中。对于追加操作,这通常应该保持为True,以确保索引的连续性。

24-2-6、append(可选,默认值为True)布尔值,对于append方法本身来说,这个参数实际上总是True,因为它就是用来追加数据的。但在某些上下文中,这个参数可能用于区分追加和覆盖操作,但在这里不适用。

24-2-7、complib(可选,默认值为None)字符串,指定用于压缩的库。与put方法相同,pandas支持多种压缩库,如'zlib'、'lzo'、'blosc'等,选择合适的压缩库可以显著减少文件大小。

24-2-8、complevel(可选,默认值为None)整数,指定压缩级别。级别越高,压缩率越高,但处理速度越慢,范围从0(无压缩)到9(最大压缩)。

24-2-9、columns(可选,默认值为None)列表,指定要追加的列,如果为None,则追加所有列,这可以用于筛选要追加的列。

24-2-10、min_itemsize(可选,默认值为None)字典,指定列中字符串的最小存储大小(以字节为单位),这有助于避免在追加数据时截断字符串,键是列名,值是整数。

24-2-11、nan_rep(可选,默认值为None)用于表示NaN值的字符串。默认为None,表示使用HDF5的NaN表示。

24-2-12、chunksize(可选,默认值为None)整数,指定写入时的块大小(以行数为单位),这对于处理大数据集时减少内存使用很有用,如果为None,则一次性写入整个数据集。

24-2-13、expectedrows(可选,默认值为None)整数,预期要追加的行数,这可以帮助优化存储结构,但通常不是必需的。

24-2-14、dropna(可选,默认值为None)布尔值,如果为True,则在追加之前从DataFrame中删除包含NaN值的行。请注意,这与put方法中的dropna参数不同,后者在append=True时无效。

24-2-15、data_columns(可选,默认值为None)列表或布尔值,指定哪些列应该作为数据列进行索引,以便可以进行快速查询。如果为True,则所有列都作为数据列;如果为False,则没有列作为数据列;如果为列表,则列表中的列名作为数据列。

24-2-16、encoding(可选,默认值为None)字符串,指定用于写入文件的编码,这对于存储包含非ASCII字符的字符串列很有用。

24-2-17、errors(可选,默认值为'strict')字符串,指定在编码或解码字符串时如何处理错误,'strict'表示抛出异常,'ignore'表示忽略错误,'replace'表示用占位符替换错误字符。

24-3、功能

        用于将DataFrame或Series对象追加到已存在的HDF5文件中的数据集的一个方法。

24-4、返回值

        没有直接的返回值,它的主要作用是执行追加操作,并将数据写入到HDF5文件中。  

24-5、说明

        无

24-6、用法
24-6-1、数据准备
24-6-2、代码示例
# 24、pandas.HDFStore.append方法
import pandas as pd
# 创建一个示例DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': ['d', 'e', 'f']})
# 将df1保存到HDF5文件中
with pd.HDFStore('example.h5') as store:
    store.put('dataset', df1, format='table')
# 将df2追加到HDF5文件中的dataset数据集
with pd.HDFStore('example.h5') as store:
    store.append('dataset', df2, format='table', index=False)  # 假设我们不想追加索引
# 验证数据是否已追加
with pd.HDFStore('example.h5') as store:
    retrieved_df = store.get('dataset')
print(retrieved_df)
# 输出将显示包含df1和df2数据的完整DataFrame
24-6-3、结果输出 
# 24、pandas.HDFStore.append方法
#    A  B
# 0  1  a
# 1  2  b
# 2  3  c
# 0  4  d
# 1  5  e
# 2  6  f

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

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

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

相关文章

【数据分析】Pandas_DataFrame读写详解:案例解析(第24天)

系列文章目录 一、 读写文件数据 二、df查询数据操作 三、df增加列操作 四、df删除行列操作 五、df数据去重操作 六、df数据修改操作 文章目录 系列文章目录前言一、 读写文件数据1.1 读写excel文件1.2 读写csv文件1.3 读写mysql数据库 二、df查询数据操作2.1 查询df子集基本方…

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片 1 目标效果视频 CamManager 2 CamManager读取本地文件时序 3 BD_Vision_Utility添加代码 3.0 导入链接库 BD_OperatorSets.dllSystem.Windows.Forms.dllOpencvSharp 3.1 导入VisionParam中创建的文件Util_FileO…

乡村振兴指数与其30个原始变量数据(Shp/Dta/Excel格式,2000-2022年)

数据简介:这份数据是我国各地级市乡村振兴指数与其30各原始变量数据并对其进行地图可视化表达。城镇化是当今中国社会经济发展的必由之路。当前我国城镇化处于发展的关键时期,但城镇化发展的加快却是一把双刃剑,为何要如此形容呢?因为当前城…

【04】微服务通信组件Feign

1、项目中接口的调用方式 1.1 HttpClient HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 JDK 自带的 URLConnectio…

科研绘图系列:R语言径向柱状图(Radial Bar Chart)

介绍 径向柱状图(Radial Bar Chart),又称为雷达图或蜘蛛网图(Spider Chart),是一种在极坐标系中绘制的柱状图。这种图表的特点是将数据点沿着一个或多个从中心向外延伸的轴来展示,这些轴通常围绕着一个中心点均匀分布。 特点: 极坐标系统:数据点不是在直角坐标系中展…

AI时代还需要产品经理吗?需要什么样的?

在人工智能技术迅速发展的今天,我们不禁要思考,产品经理这个角色是否仍然重要?AI时代是否还需要他们? 很明确的说,需要!为什么呢? 首先,我们必须认识到,AI虽然具有强大…

如何理解李彦宏说的“不要卷模型,要卷应用”

如何理解李彦宏说的“不要卷模型,要卷应用” “大家不要卷模型,要卷应用”这句话的意思是,呼吁行业不要把过多的精力和资源投入到模型的研发竞争中,而是应该更加注重基于模型的应用开发。 李彦宏提出这一观点的原因主要有以下几点…

容联云发布容犀大模型应用,重塑企业“营销服”|WAIC 2024

7月6日,在2024世界人工智能大会上,容联云成功举办主题为“数智聚合 产业向上”的生成式应用与大模型商业化实践论坛。 论坛上,容联云发布了容犀智能大模型应用升级,该系列应用包括容犀Agent Copilot、容犀Knowledge Copilot、容犀…

PHP星座微信小程序系统源码

🌟每日星运,尽在掌握!星座微信小程序,你的专属星空指南✨ 🌈 一、每日运势,精准推送 想知道今天的你运势如何?星座微信小程序来告诉你!🔮 每天醒来,打开小程…

排座椅【详细代码题解】

[NOIP2008 普及组] 排座椅 题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 D D D 对同学上课时…

(二)前端javascript中的数据结构之栈

栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的 同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 栈是限定仅在表的一端进行插入和删除操作…

CnosDB:深入理解时序数据修复函数

CnosDB是一个专注于时序数据处理的数据库。CnosDB针对时序数据的特点设计并实现了三个强大的数据修复函数: timestamp_repair – 对时间戳列进行有效修复,支持插入、删除、不变等操作。value_repair – 对值列进行智能修复,根据时间戳间隔和…

【学习笔记】网络设备(华为交换机)基础知识2——常用设备管理命令

一、前期准备 提示:下面所有学习内容都是基于以下条件完成的 条件1.已经可以正常访问交换机的命令行接口 Console口本地访问教程参考 ① :使用第三方工具(secureCRT软件)通过console口本地访问访问交换机的详细操作过程 Telnet访…

静态路由配置注意事项及黑洞路由的使用

静态路由 1 . 定义 从管理员处学习到的数据转发路径,就称为静态路由。 2 . 路由表 Proto :协议( Protocol ) Direct — 直连链路Static — 静态路由RIP 、OSPF 等 — 动态路由 Pre : 优先级( Preference &#x…

防爆手机终端安全管理平台

防爆手机终端安全管理平台能够满足国家能源、化工企业对安全生产信息化运行需求,能够快速搭建起高效、快捷的移动终端管理平台,提高企业安全生产管理水平,保证企业的安全运行和可持续发展。#防爆手机 #终端安全 #移动安全 能源、化工等生产单…

windows机器免密登录linux主机

1. 正常连接需要输入密码 ssh root1.1.1.1 2. 在Windows上生成SSH密钥对(如果你还没有的话): ssh-keygen 3. scp将id_rsa.pub传输到对应的主机 4.对应机器上查看 5.从windows上免密登录

[数仓]四、离线数仓(Hive数仓系统-续)

第8章 数仓搭建-DWT层 8.1 访客主题 1)建表语句 DROP TABLE IF EXISTS dwt_visitor_topic; CREATE EXTERNAL TABLE dwt_visitor_topic (`mid_id` STRING COMMENT 设备id,`brand` STRING COMMENT 手机品牌,`model` STRING COMMENT 手机型号,`channel` ARRAY<STRING> C…

Vue笔记11-Composition API的优势

Options API存在的问题 使用传统Options API中&#xff0c;新增或者修改一个需求&#xff0c;就需要分别在data&#xff0c;methods&#xff0c;computed里修改&#xff0c;而这些选项分布在代码的各个地方&#xff0c;中间还穿插着其他Optional API&#xff0c;如果代码量上来…

AI自动生成PPT怎么用?看完这篇文章你就知道啦

小暑&#xff0c;作为夏季的第五个节气&#xff0c;标志着炎炎夏日的正式到来。在这个时节&#xff0c;阳光明媚&#xff0c;万物生长&#xff0c;人们的心情也随着气温的升高而变得热烈。 然而&#xff0c;对于许多职场人士来说&#xff0c;小暑的到来也意味着需要准备各种汇报…

如何使用matplotlib绘制可以指定大小的饼图

​ 如果想绘制指定大小的饼图&#xff0c;如直径5mm&#xff0c;可以参考本博文实现。 有此需求的起因是我有两个维度的数据想要用图形展示&#xff0c;第一个维度是每种场景下2021&#xff0c;2022和2023年的总容量&#xff0c;第二个维度是每种场景下2021&#xff0c;2022和…