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表示的
标签中插入一个 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 的数组,反之亦然。这使得在两个库之间切换变得非常方便。