Pandas 是一个开源的数据分析和处理库,它依赖于 NumPy 库。Pandas 用于处理和分析数据。它提供了许多用于读取、写入、处理和分析数据的功能。 Pandas 库的安装配置相对较简单。

1、安装 Pandas

1)确保已安装Python

Pandas 需要 Python 环境。可以通过在终端或命令提示符中运行 python --version 来检查是否已安装 Python。

2)安装 Pandas

使用 Python 的包管理器 pip 进行安装:

pip install pandas

Anaconda 可以使用 Conda 进行安装:

conda install pandas

3)更新Pandas

pip install --upgrade pandas

2、设置 Pandas

设置 Pandas 可以帮助自定义 Pandas 的显示和配置,以提高清晰度和一致性。

1)常用选项

选项

描述

display.max_rows

控制DataFrame或Series在控制台输出时显示的最大行数。

display.max_columns

设置DataFrame输出时显示的最大列数。

display.width

设置命令行输出的宽度,以字符为单位。

display.max_colwidth

设置单个列的最大宽度。

display.precision

设置浮点数显示的小数位数。

display.expand_frame_repr

在打印DataFrame信息时,是否显示扩展信息。

display.notebook_repr_html

控制当DataFrame以HTML形式显示时的一些特性,

如是否显示索引。

display.float_format

控制是否显示浮点数小数点后不重要的0。

display.memory_usage

在DataFrame的信息输出中显示内存占用。

2)完整选项

选项

描述

compute.use_bottleneck

如果安装了bottleneck库,则使用它来加速计算,

默认值为True,有效值:

False, True [默认: True] [当前: True]

compute.use_numba

如果安装了numba,

则使用numba引擎选项进行选定操作,

默认值为False,有效值:False, 

True [默认: False] [当前: False]

compute.use_numexpr

如果安装了numexpr库,则使用它来加速计算,

默认值为True,有效值:False, 

True [默认: True] [当前: True]

display.chop_threshold

如果设置为浮点值,

则所有小于给定阈值的浮点值在repr中显示为0,

默认值:None [当前: None]

display.colheader_justify

控制列标题的对齐方式,

由DataFrameFormatter使用,

默认值:right [当前: right]

display.date_dayfirst

当为True时,打印和解析日期时首先显示日,

例如20/01/2005,默认值:False [当前: False]

display.date_yearfirst

当为True时,打印和解析日期时首先显示年,

例如2005/01/20,默认值:False [当前: False]

display.encoding

默认为控制台检测到的编码,

指定to_string返回的字符串使用的编码,

默认值:utf-8 [当前: utf-8]

display.expand_frame_repr

是否在多行中为宽DataFrame打印完整的DataFrame repr,

max_columns仍被遵守,但如果其宽度超过display.width,

则输出将跨越多个“页面”,默认值:True [当前: True]

display.float_format

可调用对象应接受一个浮点数并返回数字的期望格式的字符串,

此处用于SeriesFormatter等地方,

默认值:None [当前: None]

display.html.border

在DataFrame HTML表示的

<table>

标签中插入一个

border=value

属性。[默认: 1] [当前: 1]

display.html.table_schema

是否发布前端支持的Table Schema表示。

[默认: False] [当前: False]

display.html.use_mathjax

当为True时,

Jupyter notebook将使用MathJax处理表格内容,

渲染用美元符号包围的数学表达式。[默认: True] [当前: True]

display.large_repr

对于超出max_rows/max_cols的DataFrames,

repr(和HTML repr)可以显示一个截断的表格,

或切换到df.info()的视图。[默认: truncate] [当前: truncate]

display.max_categories

pandas在打印Categorical

或dtype为'category'的Series时应输出的最大类别数。

[默认: 8] [当前: 8]

display.max_columns

如果超过max_cols,则切换到截断视图。

'None'值意味着无限制。[默认: 0] [当前: 0]

display.max_colwidth

pandas数据结构表示中列的最大字符宽度。

当列溢出时,输出中会嵌入一个'...'占位符。

'None'值意味着无限制。[默认: 50] [当前: 50]

display.max_dir_items

将添加到dir(...)中的项目数。'None'值意味着无限制。

[默认: 100] [当前: 100]

display.max_info_columns

在DataFrame.info方法中用来决定是否打印每列信息。

[默认: 100] [当前: 100]

display.max_info_rows

df.info()通常会为每列显示空值计数。

对于大型数据框架,这可能相当慢。

max_info_rows和max_info_cols

只限制小于指定尺寸的数据框架的空值检查。

[默认: 1690785] [当前: 1690785]

display.max_rows

如果超过max_rows,则切换到截断视图。

'None'值意味着无限制。[默认: 60] [当前: 60]

display.max_seq_items

在优雅打印长序列时,

最多打印max_seq_items个项目。

如果省略了项目,则在结果字符串中添加“...”表示。

如果设置为None,则打印的项目数无限制。

默认: 100] [当前: 100]

display.memory_usage

指定当调用df.info()时

是否显示DataFrame的内存使用情况。

有效值True,False,'deep'。

[默认: True] [当前: True]

display.min_rows

在截断视图中显示的行数(当超过max_rows时)。

当max_rows设置为None或0时被忽略。

当设置为None时,遵循max_rows的值。

[默认: 10] [当前: 10]

display.multi_sparse

“稀疏化”MultiIndex显示

(不在组内的外层级别显示重复元素)。

[默认: True] [当前: True]

display.notebook_repr_html

当为True时,IPython notebook

将对pandas对象使用HTML表示

(如果可用)。[默认: True] [当前: True]

display.pprint_nest_depth

控制在优雅打印时处理的嵌套级别数。

[默认: 3] [当前: 3]

display.precision

浮点输出精度,以小数点后的位数表示。

[默认: 6] [当前: 6]

display.show_dimensions

是否在DataFrame repr的末尾打印出尺寸。

[默认: truncate] [当前: truncate]

display.unicode.ambiguous_as_wide

是否使用Unicode东亚宽度来计算显示文本宽度。

[默认: False] [当前: False]

display.unicode.east_asian_width

是否使用Unicode东亚宽度来计算显示文本宽度。

[默认: False] [当前: False]

display.width

显示的字符宽度。[默认: 80] [当前: 80]

io.excel.ods.reader

‘ods’文件的默认Excel读取引擎。可选项: auto, odf。

[默认: auto] [当前: auto]

io.excel.ods.writer

‘ods’文件的默认Excel写入引擎。可选项: auto, odf。

[默认: auto] [当前: auto]

io.excel.xls.reader

‘xls’文件的默认Excel读取引擎。可选项: auto, xlrd。

[默认: auto] [当前: auto]

io.excel.xlsb.reader

‘xlsb’文件的默认Excel读取引擎。可选项: auto, pyxlsb。

[默认: auto] [当前: auto]

io.excel.xlsm.reader

‘xlsm’文件的默认Excel读取引擎。

可选项: auto, xlrd, openpyxl。

[默认: auto] [当前: auto]

io.excel.xlsm.writer

‘xlsm’文件的默认Excel写入引擎。

可选项: auto, openpyxl。

[默认: auto] [当前: auto]

io.excel.xlsx.reader

‘xlsx’文件的默认Excel读取引擎。

可选项: auto, xlrd, openpyxl。

[默认: auto] [当前: auto]

io.excel.xlsx.writer

‘xlsx’文件的默认Excel写入引擎。

可选项: auto, openpyxl, xlsxwriter。

[默认: auto] [当前: auto]

io.hdf.default_format

HDF的默认写入格式,如果为None,

则put将默认为‘fixed’,append将默认为‘table’。

[默认: None] [当前: None]

io.hdf.dropna_table

在追加到表格时删除所有NaN行。

[默认: False] [当前: False]

io.parquet.engine

默认parquet读写引擎。

可选项: ‘auto’, ‘pyarrow’, ‘fastparquet’。

[默认: auto] [当前: auto]

io.sql.engine

默认SQL读写引擎。

可选项: ‘auto’, ‘sqlalchemy’。

[默认: auto] [当前: auto]

mode.chained_assignment

尝试使用链式赋值时,

引发异常、警告或无操作。

默认是警告。[默认: warn] [当前: warn]

mode.copy_on_write

使用Copy-on-Write的新复制-视图行为。

默认为False,

除非被‘PANDAS_COPY_ON_WRITE’环境变量覆盖

(如果设置为“1”表示True,

在导入pandas之前需要设置)。

[默认: False] [当前: False]

mode.data_manager

内部数据管理类型;可以是‘block’或‘array’。

默认为‘block’,

除非被‘PANDAS_DATA_MANAGER’环境变量覆盖

(在导入pandas之前需要设置)。

[默认: block] [当前: block]

mode.sim_interactive

是否模拟交互模式以进行测试。

[默认: False] [当前: False]

mode.string_storage

StringDtype的默认存储。

[默认: python] [当前: python]

mode.use_inf_as_na

True表示将None, NaN, INF, -INF视为NA(旧方式),

False表示None和NaN为null,

但INF, -INF不是NA(新方式)。

[默认: False] [当前: False] (已弃用)

plotting.backend

使用的绘图后端。

[默认: matplotlib] [当前: matplotlib]

plotting.matplotlib.register_converters

是否在matplotlib的单位注册表中注册日期、

时间、日期时间和周期的转换器。

[默认: auto] [当前: auto]

styler.format.decimal

浮点数和复数的小数点分隔符的字符表示。

[默认: .] [当前: .]

styler.format.escape

是否根据给定上下文(html或latex)

转义某些字符。[默认: None] [当前: None]

styler.format.formatter

在Styler.format中默认使用的格式化对象。

[默认: None] [当前: None]

styler.format.na_rep

识别为缺失的值的字符串表示。

[默认: None] [当前: None]

styler.format.precision

浮点数和复数的精度。[默认: 6] [当前: 6]

styler.format.thousands

浮点数、整数和复数的千位分隔符的字符表示。

[默认: None] [当前: None]

styler.html.mathjax

如果为False,将呈现特殊的CSS类,

表示Jupyter Notebook中不会使用Mathjax。[默认: True] [当前: True]

styler.latex.environment

替换LaTeX中的\begin{table}的环境。

[默认: None] [当前: None]

styler.latex.hrules

是否在顶部、底部和标题下方添加水平线。

[默认: False] [当前: False]

styler.latex.multicol_align

LaTeX多列稀疏化的水平对齐指定符。

[默认: r] [当前: r]

styler.latex.multirow_align

LaTeX多行稀疏化的垂直对齐指定符。

[默认: c] [当前: c]

styler.render.encoding

输出HTML和LaTeX文件使用的编码。

[默认: utf-8] [当前: utf-8]

styler.render.max_columns

将呈现的最大列数。

[默认: None] [当前: None]

styler.render.max_elements

将呈现的最大数据单元格(<td>)元素数,

在需要时将对列、行或两者进行裁剪。

[默认: 262144] [当前: 262144]

styler.render.max_rows

将呈现的最大行数。

[默认: None] [当前: None]

styler.render.repr

确定在Jupyter Notebook中使用的输出。

[默认: html] [当前: html]

styler.sparse.columns

是否稀疏化层次列的显示。

[默认: True] [当前: True]

styler.sparse.index

是否稀疏化层次索引的显示。

[默认: True] [当前: True]

参考文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html

3)使用设置

import pandas as pd

# 全局设置选项
pd.set_option("display.max_rows", 2)
pd.set_option("display.precision", 2)

pd.set_option("display.max_columns", 2)




# 创建 DataFrame
df = pd.DataFrame({"A": [1, 2, 3, 4, 5], "B": [6, 7, 8, 9, 10], "C": [11, 12, 13, 14, 15]})

# 显示 DataFrame
print(df)
print("\r\n")
print("display.max_rows 重置之后:")
# 将选项重置为默认值
pd.reset_option("display.max_rows")


print(df)

3、Pandas 与 NumPy

Pandas 和 NumPy 都是 Python 的科学计算库。它们都提供了用于处理数据的功能,但它们的侧重点有所不同。NumPy 是一个矩阵和数组处理库。它提供了用于创建、操作和处理矩阵和数组的功能。NumPy 是 Pandas 的基础,Pandas 使用 NumPy 来存储和操作数据。

1)数据结构

NumPy 提供了 ndarray,这是一个高效的多维数组,支持快速的数学和逻辑操作。Pandas 提供了 DataFrame 和 Series。DataFrame 是一个二维表格型数据结构,可以看作是一个由多个类型相同的 Series 组成的字典。Series 是一种一维数组,类似于 NumPy 的 ndarray,但它可以拥有轴标签,因此可以存储异构类型的数据。

Pandas 使用 DataFrame 数据结构来表示表格数据。DataFrame 类似于 NumPy 的 ndarray 类,但它具有一些额外的功能,例如列标签和索引。:Pandas 提供了用于数据分析的功能,例如统计分析、图表和时间序列分析。

2)功能用途

NumPy 主要用于处理数值类型的数据,是科学计算的基石。它提供了大量的数学函数,用于快速操作大量数据。

Pandas 则专注于数据分析。它提供了丰富的功能,如数据对齐、处理缺失数据、时间序列分析等,非常适合用来处理和分析实际中的结构化数据。

3)互操作性

Pandas 和 NumPy 可以很好地互操作。可以将 Pandas 的 DataFrame 和 Series 转换为 NumPy 的数组,反之亦然。这使得在两个库之间切换变得非常方便。

推荐文档