Pandas-2-2-中文文档-三十七-

Pandas 2.2 中文文档(三十七)

原文:pandas.pydata.org/docs/

pandas.io.formats.style.Styler.bar

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.bar.html

Styler.bar(subset=None, axis=0, *, color=None, cmap=None, width=100, height=100, align='mid', vmin=None, vmax=None, props='width: 10em;')

在单元格背景中绘制柱形图。

在版本 1.4.0 中更改。

参数:

subset标签、类数组、IndexSlice,可选

DataFrame.loc[] 的有效 2d 输入,或者在 1d 输入或单个键的情况下,DataFrame.loc[:, ] 其中列被优先考虑,以在应用函数之前将 data 限制在之前

,默认 0

对于每一列(axis=0'index')、每一行(axis=1'columns')或一次对整个 DataFrame 应用(axis=None)。

颜色str 或 2-元组/列表

如果传递了一个 str,则颜色对于负数和正数都相同。如果使用了 2-元组/列表,则第一个元素是 color_negative,第二个是 color_positive(例如:[‘#d65f5f’, ‘#5fba7d’])。

cmapstr、matplotlib.cm.ColorMap

matplotlib Colormap 的字符串名称或 Colormap 对象。不能与 color 一起使用。

新版本 1.4.0。

宽度float,默认 100

从左边测量的单元格的百分比,在其中绘制柱形图,范围在 [0, 100]。

高度float,默认 100

单元格中柱形图的百分比高度,居中对齐,范围在 [0,100]。

新版本 1.4.0。

对齐str、int、float、callable,默认 ‘mid’

如何将柱形图与相对于宽度调整的中心对齐。如果字符串必须是以下之一:

  • ‘left’:从最小数据值向右绘制柱形图。

  • ‘right’:从最大数据值向左绘制柱形图。

  • ‘zero’:零值位于单元格的中心。

  • ‘mid’:值为 (max-min)/2 的值位于单元格的中心,或者如果所有值都为负(正),则零位于单元格的右(左)侧。

  • ‘mean’:数据的平均值位于单元格的中心。

如果给出了一个浮点数或整数,这将指示单元格的中心。

如果是可调用的,则应接受一个 1d 或 2d 数组并返回一个标量。

在版本 1.4.0 中更改。

vminfloat,可选

最小柱形图值,定义了柱形图绘制范围的左限,较低的值被剪切到 vmin。当为 None(默认)时:将使用数据的最小值。

vmaxfloat,可选

最大柱形图值,定义了柱形图绘制范围的右限,较高的值被剪切到 vmax。当为 None(默认)时:将使用数据的最大值。

propsstr,可选

用于扩展柱状图的单元格的基本 CSS。默认为 “width: 10em;”。

新版本 1.4.0。

返回:

Styler

注意事项

用户指南的这一部分:表可视化 给出了不同设置和颜色协调的许多示例。

示例

>>> df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [3, 4, 5, 6]})
>>> df.style.bar(subset=['A'], color='gray') 

pandas.io.formats.style.Styler.to_html

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_html.html

Styler.to_html(buf=None, *, table_uuid=None, table_attributes=None, sparse_index=None, sparse_columns=None, bold_headers=False, caption=None, max_rows=None, max_columns=None, encoding=None, doctype_html=False, exclude_styles=False, **kwargs)

将 Styler 写入 HTML-CSS 格式的文件、缓冲区或字符串。

版本 1.3.0 中的新功能。

参数:

bufstr、路径对象、文件类对象,可选

字符串、路径对象(实现os.PathLike[str])或实现字符串write()函数的文件类对象。如果为None,则结果将作为字符串返回。

table_uuidstr,可选

分配给<table> HTML 元素的 Id 属性的格式:

<table id="T_<table_uuid>" ..>

如果未提供,则使用 Styler 最初分配的值。

table_attributesstr,可选

<table> HTML 元素内部的格式分配的属性:

<table .. <table_attributes> >

如果未提供,则默认为 Styler 的现有值。

sparse_indexbool,可选

是否稀疏化显示分层索引。将其设置为 False 将在每行中为每个显式级别元素显示分层键。默认为pandas.options.styler.sparse.index的值。

版本 1.4.0 中的新功能。

sparse_columnsbool,可选

是否稀疏化显示分层索引。将其设置为 False 将在每列中为每个显式级别元素显示分层键。默认为pandas.options.styler.sparse.columns的值。

版本 1.4.0 中的新功能。

bold_headersbool,可选

将“font-weight: bold;”作为 CSS 属性添加到表格样式的标题单元格中。

版本 1.4.0 中的新功能。

captionstr,可选

在渲染之前设置或覆盖 Styler 的标题。

版本 1.4.0 中的新功能。

max_rowsint,可选

渲染的最大行数。默认为pandas.options.styler.render.max_rows/max_columns

版本 1.4.0 中的新功能。

max_columnsint,可选

渲染的最大列数。默认为pandas.options.styler.render.max_columns,即 None。

如果总元素数量较大,则可能会减少行和列。该值设置为pandas.options.styler.render.max_elements,即 262144(18 位浏览器渲染)。

版本 1.4.0 中的新功能。

encodingstr,可选

文件输出的字符编码设置(如果可用,则还包括元标记)。默认为“utf-8”的pandas.options.styler.render.encoding值。

doctype_htmlbool,默认为 False

是否输出包括所有 HTML 元素的完全结构化 HTML 文件,还是仅包括核心的<style><table>元素。

exclude_stylesbool,默认为 False

是否包括<style>元素和所有相关元素classid标识符,还是仅包括<table>元素而不包含样式标识符。

**kwargs

任何额外的关键字参数都会传递到 jinja2 的 self.template.render 过程中。当您需要为自定义模板提供额外的变量时,这非常有用。

返回:

str 或 None

如果 buf 为 None,则将结果作为字符串返回。否则返回 None。

参见

DataFrame.to_html

将 DataFrame 以 HTML 格式写入文件、缓冲区或字符串。

示例

>>> df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
>>> print(df.style.to_html())  
<style type="text/css">
</style>
<table id="T_1e78e">
 <thead>
 <tr>
 <th class="blank level0" >&nbsp;</th>
 <th id="T_1e78e_level0_col0" class="col_heading level0 col0" >A</th>
 <th id="T_1e78e_level0_col1" class="col_heading level0 col1" >B</th>
 </tr>
... 

pandas.io.formats.style.Styler.to_latex

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_latex.html

Styler.to_latex(buf=None, *, column_format=None, position=None, position_float=None, hrules=None, clines=None, label=None, caption=None, sparse_index=None, sparse_columns=None, multirow_align=None, multicol_align=None, siunitx=False, environment=None, encoding=None, convert_css=False)

将 Styler 写入文件、缓冲区或 LaTeX 格式的字符串。

新版本 1.3.0 中的功能。

参数:

bufstr,路径对象,类似文件对象或 None,默认为 None

字符串,实现了 os.PathLike[str] 的路径对象,或者实现了字符串 write() 函数的类似文件对象。如果为 None,则结果作为字符串返回。

column_formatstr,可选

放置在位置的 LaTeX 列规范:

\begin{tabular}{<column_format>}

对于索引和非数字数据列,默认为 'l',对于数字数据列,默认为 'r',如果 siunitxTrue,则为 'S'。

positionstr,可选

放置在位置的 LaTeX 位置参数(例如 'h!')用于表格:

\\begin{table}[<position>]

position_float,可选

放置在位置的 LaTeX 浮动命令:

\begin{table}[]

<position_float>

如果 environment 为 “longtable”,则无法使用。

hrulesbool

设为 True 以添加 \toprule、\midrule 和 \bottomrule 来自 {booktabs} LaTeX 包。默认为 pandas.options.styler.latex.hrules,即 False。

在版本 1.4.0 中更改。

clinesstr,可选

用于控制为索引标签分隔添加 \cline 命令。可能的值为:

  • None:不添加 cline 命令(默认)。
  • “all;data”:为每个索引值添加一个 cline,扩展表的宽度,包括数据条目。
  • “all;index”:与上述相同,但线条仅扩展到索引条目的宽度。
  • “skip-last;data”:为除最后一级(永远不会稀疏化的)之外的每个索引值添加一个 cline,扩展表的宽度。
  • “skip-last;index”:与上述相同,但线条仅扩展到索引条目的宽度。

新版本 1.4.0 中的功能。

labelstr,可选

LaTeX 标签包括如下:\label{

captionstr,元组,可选

如果是字符串,则包括 LaTeX 表格标题如下:\caption{}。如果是元组,即 (“完整标题”,“简短标题”),则将标题包含为:\caption[<caption[1]>]{<caption[0]>}。

sparse_indexbool,可选

是否稀疏化显示分层索引。设置为 False 将在每行的每个层次键的显示中显示每个显式级别元素。默认为 pandas.options.styler.sparse.index,即 True。

sparse_columnsbool,可选

是否稀疏化显示分层索引。设置为 False 将在每列的每个显式级别元素的显示中显示每个显式级别元素。默认为 pandas.options.styler.sparse.columns,即 True。

multirow_align,可选

如果稀疏化分层 MultiIndexes,是否使用 multirow 包将文本居中、置顶或置底。如果未给出,默认为pandas.options.styler.latex.multirow_align,即“c”。如果给出“naive”,则不使用 multirow。

自版本 1.4.0 起更改。

multicol_align,可选

如果稀疏化分层 MultiIndex 列,是否将文本对齐在左侧、居中或右侧。如果未给出,默认为pandas.options.styler.latex.multicol_align,即“r”。如果给出 naive 选项,则不使用 multicol。也可以向非 naive 值添加管道修饰符以绘制垂直线,例如“|r”将在右对齐的合并单元格左侧绘制一条线。

自版本 1.4.0 起更改。

siunitx布尔值,默认为 False

设置为True以使 LaTeX 与{siunitx}包兼容。

environment字符串,可选

如果给出,则将替换\\begin{table}中的‘table’的环境。如果指定了‘longtable’,则会呈现更合适的模板。如果未给出,默认为pandas.options.styler.latex.environment,即无。

自版本 1.4.0 起新增。

编码字符串,可选

字符编码设置。默认为pandas.options.styler.render.encoding,即“utf-8”。

convert_css布尔值,默认为 False

将简单的单元格样式从 CSS 转换为 LaTeX 格式。任何未在转换表中找到的 CSS 都将被丢弃。可以通过添加选项--latex 来强制应用样式。请参阅注释。

返回:

字符串或无

如果 buf 为 None,则将结果作为字符串返回。否则返回 None。

另请参见

Styler.format

格式化单元格的文本显示值。

注释

LaTeX 包

对于以下功能,我们建议包含以下 LaTeX 内容:

功能 包含
稀疏列 无:包含在默认的{tabular}环境内
稀疏行 \usepackage
水平线 \usepackage
颜色 \usepackage[table]
siunitx \usepackage
粗体(使用 siunitx) \usepackage{etoolbox}\robustify\bfseries\sisetup{detect-all = true} (在{document}内)
斜体(使用 siunitx) \usepackage{etoolbox}\robustify\itshape\sisetup{detect-all = true} (在{document}内)
环境 \usepackage{longtable} 如果参数为“longtable” | 或任何其他相关的环境包
超链接 \usepackage

单元格样式

只有在伴随的样式函数已经使用适当的 LaTeX 命令构建时,才能呈现 LaTeX 样式。所有样式功能都围绕 CSS (<attribute>, <value>)对的概念构建(参见表格可视化),这应该被替换为 LaTeX (<command>, <options>)方法。每个单元格将使用嵌套的 LaTeX 命令及其附带的选项单独进行样式设置。

例如,以下代码将在 HTML-CSS 中突出显示和加粗一个单元格:

>>> df = pd.DataFrame([[1,2], [3,4]])
>>> s = df.style.highlight_max(axis=None,
...                            props='background-color:red; font-weight:bold;')
>>> s.to_html() 

使用仅 LaTeX 命令的等价物如下:

>>> s = df.style.highlight_max(axis=None,
...                            props='cellcolor:{red}; bfseries: ;')
>>> s.to_latex() 

在内部,这些结构化的 LaTeX (<命令>,<选项>) 对会被转换为具有默认结构的 display_value\<命令><选项> <display_value>。如果存在多个命令,则后者会被递归地嵌套,因此上面的示例突出显示的单元格将呈现为 \cellcolor{red} \bfseries 4

有时这种格式不适用于所应用的命令或所使用的 LaTeX 包的组合,因此可以在元组中的 <options> 中添加其他标志,以得到所需括号的不同位置(默认--nowrap 相同):

元组格式 输出结构
(<命令>,<选项>) <命令><选项> <display_value>
(<命令>,<选项> --nowrap <命令><选项> <display_value>
(<命令>,<选项> --rwrap <命令><选项>
(<命令>,<选项> --wrap
(<命令>,<选项> --lwrap {<命令><选项>} <display_value>
(<命令>,<选项> --dwrap {<命令><选项>}

例如,应始终使用 font-weight 的 textbf 命令与 -rwrap 一起,因此 ('textbf','--rwrap') 将呈现一个带有括号包裹的工作单元,如 \textbf{<显示值>}

一个更全面的示例如下:

>>> df = pd.DataFrame([[1, 2.2, "dogs"], [3, 4.4, "cats"], [2, 6.6, "cows"]],
...                   index=["ix1", "ix2", "ix3"],
...                   columns=["Integers", "Floats", "Strings"])
>>> s = df.style.highlight_max(
...     props='cellcolor:[HTML]{FFFF00}; color:{red};'
...           'textit:--rwrap; textbf:--rwrap;'
... )
>>> s.to_latex() 

../../_images/latex_1.png

表样式

内部 Styler 使用其 table_styles 对象来解析 column_formatpositionposition_floatlabel 输入参数。这些参数以以下格式添加到表样式中:

set_table_styles([
    {"selector": "column_format", "props": f":{column_format};"},
    {"selector": "position", "props": f":{position};"},
    {"selector": "position_float", "props": f":{position_float};"},
    {"selector": "label", "props": f":{{{label.replace(':','§')}}};"}
], overwrite=False) 

例外情况是 hrules 参数,实际上它同时控制三个命令:toprulebottomrulemidrule。可以将 hrules 设置为 True,也可以通过手动设置 table_styles 来设置每个单独的规则定义,例如下面我们设置了一个常规的 toprule,为 bottomrule 设置了一个 hline,并排除了 midrule

set_table_styles([
    {'selector': 'toprule', 'props': ':toprule;'},
    {'selector': 'bottomrule', 'props': ':hline;'},
], overwrite=False) 

如果将其他 commands 添加到表样式中,它们将被检测到,并立即放置在 'begin{tabular}' 命令的上方。例如,要添加奇偶行着色,从 {colortbl} 包中,格式为 \rowcolors{1}{pink}{red},使用:

set_table_styles([
    {'selector': 'rowcolors', 'props': ':{1}{pink}{red};'}
], overwrite=False) 

使用这些参数的更全面的示例如下:

>>> df.columns = pd.MultiIndex.from_tuples([
...     ("Numeric", "Integers"),
...     ("Numeric", "Floats"),
...     ("Non-Numeric", "Strings")
... ])
>>> df.index = pd.MultiIndex.from_tuples([
...     ("L0", "ix1"), ("L0", "ix2"), ("L1", "ix3")
... ])
>>> s = df.style.highlight_max(
...     props='cellcolor:[HTML]{FFFF00}; color:{red}; itshape:; bfseries:;'
... )
>>> s.to_latex(
...     column_format="rrrrr", position="h", position_float="centering",
...     hrules=True, label="table:5", caption="Styled LaTeX Table",
...     multirow_align="t", multicol_align="r"
... ) 

../../_images/latex_2.png

格式化

要格式化值,应先使用 Styler.format(),然后调用 Styler.to_latex,以及其他方法,例如 Styler.hide()

>>> s.clear()
>>> s.table_styles = []
>>> s.caption = None
>>> s.format({
...    ("Numeric", "Integers"): '\${}',
...    ("Numeric", "Floats"): '{:.3f}',
...    ("Non-Numeric", "Strings"): str.upper
... })  
 Numeric      Non-Numeric
 Integers   Floats    Strings
L0    ix1       $1   2.200      DOGS
 ix2       $3   4.400      CATS
L1    ix3       $2   6.600      COWS 
>>> s.to_latex()  
\begin{tabular}{llrrl}
{} & {} & \multicolumn{2}{r}{Numeric} & {Non-Numeric} \\
{} & {} & {Integers} & {Floats} & {Strings} \\
\multirow[c]{2}{*}{L0} & ix1 & \\$1 & 2.200 & DOGS \\
 & ix2 & \$3 & 4.400 & CATS \\
L1 & ix3 & \$2 & 6.600 & COWS \\
\end{tabular} 

CSS 转换

此方法可以使用以下有限的转换将使用 HTML-CSS 构造的 Styler 转换为 LaTeX。

CSS 属性 CSS 值 LaTeX 命令 LaTeX 选项
字体粗细 粗体更粗 bfseriesbfseries
字体风格 斜体倾斜 斜体形状
背景颜色 红色#fe01ea#f0ergb(128,255,0)rgba(128,0,0,0.5)rgb(25%,255,50%) 单元格颜色 {红色}–lwrap[HTML]{FE01EA}–lwrap[HTML]{FF00EE}–lwrap[rgb]{0.5,1,0}–lwrap[rgb]{0.5,0,0}–lwrap[rgb]{0.25,1,0.5}–lwrap
颜色 红色#fe01ea#f0ergb(128,255,0)rgba(128,0,0,0.5)rgb(25%,255,50%) 颜色 {红色}[HTML]{FE01EA}[HTML]{FF00EE}[rgb]{0.5,1,0}[rgb]{0.5,0,0}[rgb]

还可以使用--latex标志将用户定义的 LaTeX 样式添加到 HTML-CSS Styler 中,并在 CSS 注释中添加转换器将检测到的 LaTeX 解析选项。

>>> df = pd.DataFrame([[1]])
>>> df.style.set_properties(
...     **{"font-weight": "bold /* --dwrap */", "Huge": "--latex--rwrap"}
... ).to_latex(convert_css=True)  
\begin{tabular}{lr}
{} & {0} \\
0 & {\bfseries}{\Huge{1}} \\
\end{tabular} 

例子

下面我们给出一个完整的逐步示例,添加一些高级功能并注意一些常见的陷阱。

首先,我们像往常一样创建 DataFrame 和 Styler,包括 MultiIndex 行和列,这允许更高级的格式选项:

>>> cidx = pd.MultiIndex.from_arrays([
...     ["Equity", "Equity", "Equity", "Equity",
...      "Stats", "Stats", "Stats", "Stats", "Rating"],
...     ["Energy", "Energy", "Consumer", "Consumer", "", "", "", "", ""],
...     ["BP", "Shell", "H&M", "Unilever",
...      "Std Dev", "Variance", "52w High", "52w Low", ""]
... ])
>>> iidx = pd.MultiIndex.from_arrays([
...     ["Equity", "Equity", "Equity", "Equity"],
...     ["Energy", "Energy", "Consumer", "Consumer"],
...     ["BP", "Shell", "H&M", "Unilever"]
... ])
>>> styler = pd.DataFrame([
...     [1, 0.8, 0.66, 0.72, 32.1678, 32.1678**2, 335.12, 240.89, "Buy"],
...     [0.8, 1.0, 0.69, 0.79, 1.876, 1.876**2, 14.12, 19.78, "Hold"],
...     [0.66, 0.69, 1.0, 0.86, 7, 7**2, 210.9, 140.6, "Buy"],
...     [0.72, 0.79, 0.86, 1.0, 213.76, 213.76**2, 2807, 3678, "Sell"],
... ], columns=cidx, index=iidx).style 

其次,我们将格式化显示,并且,由于我们的表格非常宽,将隐藏索引的重复级别 0:

>>> (styler.format(subset="Equity", precision=2)
...       .format(subset="Stats", precision=1, thousands=",")
...       .format(subset="Rating", formatter=str.upper)
...       .format_index(escape="latex", axis=1)
...       .format_index(escape="latex", axis=0)
...       .hide(level=0, axis=0)) 

注意,索引和列标题中的一个字符串条目是“H&M”。如果不将escape=”latex”选项应用于format_index方法,结果的 LaTeX 将无法渲染,并且返回的错误非常难以调试。使用适当的转义,将“&”转换为“&”。

第三,我们将一些(CSS-HTML)样式应用于我们的对象。我们将使用内置方法并定义自己的方法来突出显示股票推荐:

>>> def rating_color(v):
...     if v == "Buy": color = "#33ff85"
...     elif v == "Sell": color = "#ff5933"
...     else: color = "#ffdd33"
...     return f"color: {color}; font-weight: bold;"
>>> (styler.background_gradient(cmap="inferno", subset="Equity", vmin=0, vmax=1)
...       .map(rating_color, subset="Rating")) 

所有上述样式在转换为 HTML(见下文)和 LaTeX 后都将起作用:

../../_images/latex_stocks_html.png

但是,最后我们想添加一个仅限 LaTeX 的样式(来自{graphicx}包),这不容易从 CSS 转换,而 pandas 不支持它。请注意,此处使用了--latex标志,以及--rwrap以确保在转换时格式正确并且不被忽略。

>>> styler.map_index(
...     lambda v: "rotatebox:{45}--rwrap--latex;", level=2, axis=1
... ) 

最后,我们渲染我们的 LaTeX,根据需要添加其他选项:

>>> styler.to_latex(
...     caption="Selected stock correlation and simple statistics.",
...     clines="skip-last;data",
...     convert_css=True,
...     position_float="centering",
...     multicol_align="|c|",
...     hrules=True,
... )  
\begin{table}
\centering
\caption{Selected stock correlation and simple statistics.}
\begin{tabular}{llrrrrrrrrl}
\toprule
 &  & \multicolumn{4}{|c|}{Equity} & \multicolumn{4}{|c|}{Stats} & Rating \\
 &  & \multicolumn{2}{|c|}{Energy} & \multicolumn{2}{|c|}{Consumer} &
\multicolumn{4}{|c|}{} &  \\
 &  & \rotatebox{45}{BP} & \rotatebox{45}{Shell} & \rotatebox{45}{H\&M} &
\rotatebox{45}{Unilever} & \rotatebox{45}{Std Dev} & \rotatebox{45}{Variance} &
\rotatebox{45}{52w High} & \rotatebox{45}{52w Low} & \rotatebox{45}{} \\
\midrule
\multirow[c]{2}{*}{Energy} & BP & {\cellcolor[HTML]{FCFFA4}}
\color[HTML]{000000} 1.00 & {\cellcolor[HTML]{FCA50A}} \color[HTML]{000000}
0.80 & {\cellcolor[HTML]{EB6628}} \color[HTML]{F1F1F1} 0.66 &
{\cellcolor[HTML]{F68013}} \color[HTML]{F1F1F1} 0.72 & 32.2 & 1,034.8 & 335.1
& 240.9 & \color[HTML]{33FF85} \bfseries BUY \\
 & Shell & {\cellcolor[HTML]{FCA50A}} \color[HTML]{000000} 0.80 &
{\cellcolor[HTML]{FCFFA4}} \color[HTML]{000000} 1.00 &
{\cellcolor[HTML]{F1731D}} \color[HTML]{F1F1F1} 0.69 &
{\cellcolor[HTML]{FCA108}} \color[HTML]{000000} 0.79 & 1.9 & 3.5 & 14.1 &
19.8 & \color[HTML]{FFDD33} \bfseries HOLD \\
\cline{1-11}
\multirow[c]{2}{*}{Consumer} & H\&M & {\cellcolor[HTML]{EB6628}}
\color[HTML]{F1F1F1} 0.66 & {\cellcolor[HTML]{F1731D}} \color[HTML]{F1F1F1}
0.69 & {\cellcolor[HTML]{FCFFA4}} \color[HTML]{000000} 1.00 &
{\cellcolor[HTML]{FAC42A}} \color[HTML]{000000} 0.86 & 7.0 & 49.0 & 210.9 &
140.6 & \color[HTML]{33FF85} \bfseries BUY \\
 & Unilever & {\cellcolor[HTML]{F68013}} \color[HTML]{F1F1F1} 0.72 &
{\cellcolor[HTML]{FCA108}} \color[HTML]{000000} 0.79 &
{\cellcolor[HTML]{FAC42A}} \color[HTML]{000000} 0.86 &
{\cellcolor[HTML]{FCFFA4}} \color[HTML]{000000} 1.00 & 213.8 & 45,693.3 &
2,807.0 & 3,678.0 & \color[HTML]{FF5933} \bfseries SELL \\
\cline{1-11}
\bottomrule
\end{tabular}
\end{table} 

../../_images/latex_stocks.png

pandas.io.formats.style.Styler.to_excel

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_excel.html

Styler.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None, storage_options=None)

将 Styler 写入 Excel 工作表。

要将单个 Styler 写入 Excel .xlsx 文件,只需要指定目标文件名即可。要写入多个工作表,需要创建一个具有目标文件名的 ExcelWriter 对象,并在文件中指定要写入的工作表。

可通过指定唯一的 sheet_name 来写入多个工作表。将所有数据写入文件后,必须保存更改。请注意,如果使用已存在的文件名创建 ExcelWriter 对象,则将删除现有文件的内容。

参数:

excel_writer类似路径、文件或 ExcelWriter 对象

文件路径或现有的 ExcelWriter。

sheet_name字符串,默认为 ‘Sheet1’

将包含 DataFrame 的工作表的名称。

na_rep字符串,默认为 ‘’

缺失数据表示。

float_format字符串,可选

浮点数格式字符串。例如 float_format="%.2f" 将 0.1234 格式化为 0.12。

columns序列或字符串列表,可选

要写入的列。

header布尔值或字符串列表,默认为 True

写出列名。如果给出字符串列表,则假定为列名的别名。

index布尔值,默认为 True

写入行名称(索引)。

index_label字符串或序列,可选

如果需要,为索引列指定列标签。如果未指定,并且 header 和 index 为 True,则使用索引名称。如果 DataFrame 使用 MultiIndex,则应给出一个序列。

startrow整数,默认为 0

要转储数据帧的左上角单元格行。

startcol整数,默认为 0

要转储数据帧的左上角单元格列。

engine字符串,可选

要使用的写入引擎,‘openpyxl’ 或 ‘xlsxwriter’。您还可以通过选项 io.excel.xlsx.writerio.excel.xlsm.writer 设置此选项。

merge_cellsbool,默认为 True

将多级索引和分层行写为合并单元格。

inf_rep字符串,默认为 ‘inf’

代表无穷大的表示(Excel 中没有原生的无穷大表示)。

freeze_panes包含两个整数的元组,可选

指定要冻结的基于一的最底行和最右列。

storage_options字典,可选

适用于特定存储连接的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对被转发到 urllib.request.Request 作为头选项。对于其他 URL(例如以 “s3://” 和 “gcs://” 开头的 URL),键值对被转发到 fsspec.open。请参阅 fsspecurllib 以获取更多详细信息,并且有关存储选项的更多示例,请参阅 此处

自版本 1.5.0 新增。

engine_kwargs字典,可选

传递给 Excel 引擎的任意关键字参数。

另请参阅

to_csv

将 DataFrame 写入逗号分隔值(csv)文件。

ExcelWriter

用于将 DataFrame 对象写入 Excel 表格的类。

read_excel

从 Excel 文件读取到 pandas DataFrame。

read_csv

读取逗号分隔值(csv)文件到 DataFrame。

io.formats.style.Styler.to_excel

在 Excel 表格中添加样式。

注意事项

为了与 to_csv() 兼容,to_excel 在写入之前将列表和字典序列化为字符串。

一旦工作簿已保存,就无法在不重写整个工作簿的情况下再写入数据。

示例

创建、写入并保存工作簿:

>>> df1 = pd.DataFrame([['a', 'b'], ['c', 'd']],
...                    index=['row 1', 'row 2'],
...                    columns=['col 1', 'col 2'])
>>> df1.to_excel("output.xlsx") 

若要指定工作表名称:

>>> df1.to_excel("output.xlsx",
...              sheet_name='Sheet_name_1') 

如果希望写入工作簿中的多个工作表,则需要指定 ExcelWriter 对象:

>>> df2 = df1.copy()
>>> with pd.ExcelWriter('output.xlsx') as writer:  
...     df1.to_excel(writer, sheet_name='Sheet_name_1')
...     df2.to_excel(writer, sheet_name='Sheet_name_2') 

ExcelWriter 也可以用于追加到现有的 Excel 文件中:

>>> with pd.ExcelWriter('output.xlsx',
...                     mode='a') as writer:  
...     df1.to_excel(writer, sheet_name='Sheet_name_3') 

若要设置用于写入 Excel 文件的库,可以传递 engine 关键字(默认引擎会根据文件扩展名自动选择):

>>> df1.to_excel('output1.xlsx', engine='xlsxwriter') 

pandas.io.formats.style.Styler.to_string

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.to_string.html

Styler.to_string(buf=None, *, encoding=None, sparse_index=None, sparse_columns=None, max_rows=None, max_columns=None, delimiter=' ')

将 Styler 以文本格式写入文件、缓冲区或字符串。

新版本 1.5.0 中新增。

参数:

bufstr,路径对象,类文件对象,可选

字符串,路径对象(实现了 os.PathLike[str]),或实现了字符串 write() 函数的类文件对象。如果为 None,则结果将作为字符串返回。

编码str,可选

文件输出的字符编码设置(如果可用,则为元标记)。默认为 pandas.options.styler.render.encoding 值为 “utf-8”。

sparse_indexbool,可选

是否稀疏显示分层索引。设置为 False 将在每行的分层键中显示每个显式级别元素。默认为 pandas.options.styler.sparse.index 值。

sparse_columnsbool,可选

是否稀疏显示分层索引。设置为 False 将在每列的分层键中显示每个显式级别元素。默认为 pandas.options.styler.sparse.columns 值。

max_rowsint,可选

将呈现的最大行数。默认为 pandas.options.styler.render.max_rows,其为 None。

max_columnsint,可选

将呈现的最大列数。默认为 pandas.options.styler.render.max_columns,其为 None。

如果总元素数量较大,则可能会减少行和列。此值设置为 pandas.options.styler.render.max_elements,其为 262144(18 位浏览器渲染)。

分隔符str,默认单个空格

数据元素之间的分隔符。

返回:

str 或 None

如果 buf 为 None,则返回结果为字符串。否则返回 None。

示例

>>> df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
>>> df.style.to_string()
' A B\n0 1 3\n1 2 4\n' 

pandas.io.formats.style.Styler.export

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.export.html

Styler.export()

导出应用于当前样式器的样式。

可以应用于第二个样式器,使用 Styler.use

返回:

字典

另请参阅

Styler.use

设置当前样式器的样式。

Styler.copy

创建当前样式器的副本。

注意事项

此方法旨在将一个样式器的非数据相关属性复制到另一个样式器。它与 Styler.copy 不同,后者也复制数据和数据相关属性。

以下项目由于通常不是数据相关而导出:

  • applymap 添加的样式函数
  • 如果不明确,是否将轴和名称隐藏在显示中。
  • 表属性
  • 表格样式

以下属性被视为数据相关,因此不导出:

  • 标题
  • UUID
  • 工具提示
  • 由索引标签识别的任何隐藏行或列
  • 使用 Styler.format 应用的任何格式
  • 使用 Styler.set_td_classes 添加的任何 CSS 类

示例

>>> styler = pd.DataFrame([[1, 2], [3, 4]]).style
>>> styler2 = pd.DataFrame([[9, 9, 9]]).style
>>> styler.hide(axis=0).highlight_max(axis=1)  
>>> export = styler.export()
>>> styler2.use(export) 

pandas.io.formats.style.Styler.use

原文:pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.use.html

Styler.use(styles)

在当前 Styler 上设置样式。

可能使用来自 Styler.export 的样式。

参数:

stylesdict(str, Any)

要添加到 Styler 的属性列表。字典键应只包含:

  • apply: styler 函数的列表,通常使用 applymap 添加。

  • “table_attributes”: HTML 属性,通常使用 set_table_attributes 添加。

  • “table_styles”: CSS 选择器和属性,通常使用 set_table_styles 添加。

  • hide_index: 是否隐藏索引,通常使用 hide_index 添加,或用于隐藏级别的布尔列表。

  • hide_columns: 是否隐藏列标题,通常使用 hide_columns 添加,或用于隐藏级别的布尔列表。

  • “hide_index_names”: 是否隐藏索引名称。

  • “hide_column_names”: 是否隐藏列标题名称。

  • “css”: 使用的 css 类名。

返回值:

Styler

参见

Styler.export

导出非数据相关属性到当前 Styler。

示例

>>> styler = pd.DataFrame([[1, 2], [3, 4]]).style
>>> styler2 = pd.DataFrame([[9, 9, 9]]).style
>>> styler.hide(axis=0).highlight_max(axis=1)  
>>> export = styler.export()
>>> styler2.use(export) 

绘图

原文:pandas.pydata.org/docs/reference/plotting.html

以下函数包含在 pandas.plotting 模块中。

andrews_curves(frame, class_column[, ax, ...]) 为可视化多变量数据聚类生成 matplotlib 图。
autocorrelation_plot(series[, ax]) 时间序列的自相关图。
bootstrap_plot(series[, fig, size, samples]) 在均值、中位数和中程统计量上进行自举图绘制。
boxplot(data[, column, by, ax, fontsize, ...]) 从 DataFrame 列绘制箱线图。
deregister_matplotlib_converters() 移除 pandas 的格式化程序和转换器。
lag_plot(series[, lag, ax]) 时间序列的滞后图。
parallel_coordinates(frame, class_column[, ...]) 平行坐标绘图。
plot_params 存储 pandas 绘图选项。
radviz(frame, class_column[, ax, color, ...]) 在二维空间中绘制多维数据集。
register_matplotlib_converters() 将 pandas 的格式化程序和转换器注册到 matplotlib。
scatter_matrix(frame[, alpha, figsize, ax, ...]) 绘制散点矩阵。
table(ax, data, **kwargs) 将 DataFrame 和 Series 转换为 matplotlib.table 的辅助函数。

pandas.plotting.andrews_curves

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.andrews_curves.html

pandas.plotting.andrews_curves(frame, class_column, ax=None, samples=200, color=None, colormap=None, **kwargs)

生成用于可视化多变量数据聚类的 matplotlib 绘图。

Andrews 曲线的函数形式为:

[f(t) = \frac{x_1}{\sqrt{2}} + x_2 \sin(t) + x_3 \cos(t) + x_4 \sin(2t) + x_5 \cos(2t) + \cdots]

其中 (x) 系数对应于每个维度的值,(t) 在 (-\pi) 和 (+\pi) 之间线性间隔。然后,frame 的每一行对应于单个曲线。

参数:

frameDataFrame

待绘制的数据,最好归一化到(0.0,1.0)。

类别列label

包含类名的列的名称。

axaxes 对象,默认为 None

要使用的坐标轴。

样本int

每条曲线中要绘制的点数。

颜色str、list[str] 或 tuple[str],可选

用于不同类别的颜色。颜色可以是字符串或 3 元浮点 RGB 值。

色图str 或 matplotlib 色图对象,默认为 None

要从中选择颜色的色图。如果是字符串,则从 matplotlib 加载该名称的色图。

**kwargs

传递给 matplotlib 绘图方法的选项。

返回:

matplotlib.axes.Axes

示例

>>> df = pd.read_csv(
...     'https://raw.githubusercontent.com/pandas-dev/'
...     'pandas/main/pandas/tests/io/data/csv/iris.csv'
... )
>>> pd.plotting.andrews_curves(df, 'Name') 

../../_images/pandas-plotting-andrews_curves-1.png

pandas.plotting.autocorrelation_plot

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.autocorrelation_plot.html

pandas.plotting.autocorrelation_plot(series, ax=None, **kwargs)

时间序列的自相关图。

参数:

seriesSeries

要可视化的时间序列。

axMatplotlib 轴对象,可选

要使用的 matplotlib 轴对象。

**kwargs

传递给 matplotlib 绘图方法的选项。

返回:

matplotlib.axes.Axes

示例

图中的水平线对应于 95%和 99%的置信区间。

虚线代表 99%的置信区间。

>>> spacing = np.linspace(-9 * np.pi, 9 * np.pi, num=1000)
>>> s = pd.Series(0.7 * np.random.rand(1000) + 0.3 * np.sin(spacing))
>>> pd.plotting.autocorrelation_plot(s) 

../../_images/pandas-plotting-autocorrelation_plot-1.png

pandas.plotting.bootstrap_plot

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.bootstrap_plot.html

pandas.plotting.bootstrap_plot(series, fig=None, size=50, samples=500, **kwds)

均值、中位数和中程统计的自举绘图。

自举绘图用于通过依赖带有替换的随机抽样来估计统计量的不确定性[1]。此函数将为给定大小的给定样本数生成均值、中位数和中程统计的自举绘图。

[1]

en.wikipedia.org/wiki/Bootstrapping_%28statistics%29中的“自举法(统计学)”

参数:

seriespandas.Series

从中获取自举抽样的 Series。

figmatplotlib.figure.Figure,默认为 None

如果给定,它将使用 fig 引用进行绘图,而不是使用默认参数创建一个新的。

sizeint,默认为 50

在每次抽样中考虑的数据点数。它必须小于或等于系列的长度。

samplesint,默认为 500

执行自举程序的次数。

**kwds

传递给 matplotlib 绘图方法的选项。

返回:

matplotlib.figure.Figure

Matplotlib 图。

另请参见

pandas.DataFrame.plot

DataFrame 对象的基本绘图。

pandas.Series.plot

Series 对象的基本绘图。

示例

此示例为 Series 绘制了一个基本的自举绘图。

>>> s = pd.Series(np.random.uniform(size=100))
>>> pd.plotting.bootstrap_plot(s)  
<Figure size 640x480 with 6 Axes> 

../../_images/pandas-plotting-bootstrap_plot-1.png

pandas.plotting.boxplot

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.boxplot.html

pandas.plotting.boxplot(data, column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, **kwargs)

从 DataFrame 列制作一个箱线图。

从 DataFrame 列制作一个箱线图,可选择按其他列进行分组。箱线图是一种通过四分位数图形化表示数值数据组的方法。箱子从数据的 Q1 到 Q3 四分位值延伸,中位数(Q2)处有一条线。触须从箱子的边缘延伸,显示数据的范围。默认情况下,它们不会超过箱子边缘的 1.5 * IQR(IQR = Q3 - Q1),结束于该间隔内最远的数据点。异常值将绘制为单独的点。

更多细节请参阅维基百科关于 箱线图 的条目。

参数:

dataDataFrame

要可视化的数据。

columnstr 或 str 列表,可选

列名或名称列表,或向量。可以是任何有效的输入到 pandas.DataFrame.groupby() 的内容。

bystr 或 array-like,可选

DataFrame 中要进行分组的列,pandas.DataFrame.groupby()。每个值的列将绘制一个箱线图。

axmatplotlib.axes.Axes 类的对象,可选

由箱线���使用的 matplotlib 坐标轴。

fontsizefloat 或 str

刻度标签的字体大小,以点为单位或字符串(例如,large)。

rotfloat,默认为 0

标签相对于屏幕坐标系的旋转角度(以度为单位)。

gridbool,默认为 True

将其设置为 True 将显示网格。

figsize元组(宽度,高度),单位为英寸

在 matplotlib 中创建的图的大小。

layout元组(行,列),可选

例如,(3, 5) 将使用 3 行 5 列显示子图,从左上角开始。

return_type 或 None,默认为 ‘axes’

要返回的对象类型。默认为 axes

  • ‘axes’ 返回绘制箱线图的 matplotlib 坐标轴。

  • ‘dict’ 返回一个值为箱线图的 matplotlib 线条的字典。

  • ‘both’ 返回一个带有坐标轴和字典的命名元组。

  • 当使用 by 进行分组时,将返回一个将列映射到 return_type 的 Series。

    如果 return_type 为 None,则返回与 layout 相同形状的 axes 的 NumPy 数组。

**kwargs

要传递给 matplotlib.pyplot.boxplot() 的所有其他绘图关键字参数。

返回:

结果

详见注释。

另请参阅

pandas.Series.plot.hist

制作直方图。

matplotlib.pyplot.boxplot

Matplotlib 相当的图。

注释

返回类型取决于return_type参数:

  • ‘axes’:matplotlib.axes.Axes 类的对象

  • ‘dict’:matplotlib.lines.Line2D 对象的字典

  • ‘both’:带有结构(ax,lines)的命名元组

对于使用by分组的数据,返回上述内容的 Series 或 numpy 数组:

  • Series

  • array(对于return_type = None

在绘图后要微调线条外观时,请使用return_type='dict'。在这种情况下,返回一个包含组成箱子、上下边缘、异常值、中位数和须的线条的 dict。

示例

可以通过df.boxplot()或指定要使用的列来为数据框中的每一列创建箱线图:

>>> np.random.seed(1234)
>>> df = pd.DataFrame(np.random.randn(10, 4),
...                   columns=['Col1', 'Col2', 'Col3', 'Col4'])
>>> boxplot = df.boxplot(column=['Col1', 'Col2', 'Col3']) 

../../_images/pandas-plotting-boxplot-1.png

可以使用选项by创建根据第三个变量的值分组的变量分布的箱线图。例如:

>>> df = pd.DataFrame(np.random.randn(10, 2),
...                   columns=['Col1', 'Col2'])
>>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
...                      'B', 'B', 'B', 'B', 'B'])
>>> boxplot = df.boxplot(by='X') 

../../_images/pandas-plotting-boxplot-2.png

可以传递字符串列表(即['X','Y'])以便通过 x 轴上的变量组合对数据进行分组:

>>> df = pd.DataFrame(np.random.randn(10, 3),
...                   columns=['Col1', 'Col2', 'Col3'])
>>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
...                      'B', 'B', 'B', 'B', 'B'])
>>> df['Y'] = pd.Series(['A', 'B', 'A', 'B', 'A',
...                      'B', 'A', 'B', 'A', 'B'])
>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by=['X', 'Y']) 

../../_images/pandas-plotting-boxplot-3.png

可以通过给layout传递一个元组来调整箱线图的布局:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      layout=(2, 1)) 

../../_images/pandas-plotting-boxplot-4.png

可以对箱线图进行其他格式设置,例如取消网格(grid=False),旋转 x 轴上的标签(例如rot=45)或更改字体大小(例如fontsize=15):

>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15) 

../../_images/pandas-plotting-boxplot-5.png

参数return_type可用于选择 boxplot 返回的元素类型。当选择return_type='axes'时,返回绘制箱线图的 matplotlib 轴:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], return_type='axes')
>>> type(boxplot)
<class 'matplotlib.axes._axes.Axes'> 

使用by分组时,将返回一个将列映射到return_type的 Series:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type='axes')
>>> type(boxplot)
<class 'pandas.core.series.Series'> 

如果return_type为 None,则返回一个与layout形状相同的 NumPy 数组:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type=None)
>>> type(boxplot)
<class 'numpy.ndarray'> 

pandas.plotting.deregister_matplotlib_converters

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.deregister_matplotlib_converters.html

pandas.plotting.deregister_matplotlib_converters()

移除 pandas 格式化程序和转换器。

移除register()添加的自定义转换器。这尝试将注册表的状态设置回 pandas 注册其自己单位之前的状态。完全删除 pandas 自身类型的转换器,如 Timestamp 和 Period 的转换器。恢复 pandas 重写的类型的转换器,如datetime.datetime,恢复为其原始值。

另请参阅

register_matplotlib_converters

注册 pandas 格式化程序和转换器到 matplotlib。

示例

下面一行是由 pandas 自动完成的,以便绘图可以呈现:

>>> pd.plotting.register_matplotlib_converters() 
>>> df = pd.DataFrame({'ts': pd.period_range('2020', periods=2, freq='M'),
...                    'y': [1, 2]
...                    })
>>> plot = df.plot.line(x='ts', y='y') 

../../_images/pandas-plotting-deregister_matplotlib_converters-1.png

取消手动注销注册器将引发错误:

>>> pd.set_option("plotting.matplotlib.register_converters",
...               False)  
>>> df.plot.line(x='ts', y='y')  
Traceback (most recent call last):
TypeError: float() argument must be a string or a real number, not 'Period' 

pandas.plotting.lag_plot

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.lag_plot.html

pandas.plotting.lag_plot(series, lag=1, ax=None, **kwds)

时间序列的滞后图。

参数:

series系列

要可视化的时间序列。

lagint,默认为 1

散点图的滞后长度。

axMatplotlib 坐标轴对象,可选

要使用的 matplotlib 坐标轴对象。

**kwds

Matplotlib 散点图方法的关键字参数。

返回:

matplotlib.axes.Axes

示例

滞后图最常用于查找时间序列数据中的模式。

给定以下时间序列

>>> np.random.seed(5)
>>> x = np.cumsum(np.random.normal(loc=1, scale=5, size=50))
>>> s = pd.Series(x)
>>> s.plot() 

../../_images/pandas-plotting-lag_plot-1.png

使用 lag=1 的滞后图返回

>>> pd.plotting.lag_plot(s, lag=1)
<Axes: xlabel='y(t)', ylabel='y(t + 1)'> 

../../_images/pandas-plotting-lag_plot-2.png

pandas.plotting.parallel_coordinates

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.parallel_coordinates.html

pandas.plotting.parallel_coordinates(frame, class_column, cols=None, ax=None, color=None, use_columns=False, xticks=None, colormap=None, axvlines=True, axvlines_kwds=None, sort_labels=False, **kwargs)

平行坐标绘图。

参数:

frame数据帧

class_column字符串

包含类名的列名。

cols列表,可选

要使用的列名列表。

axmatplotlib.axis,可选

Matplotlib 坐标轴对象。

color列表或元组,可选

用于不同类别的颜色。

use_columns布尔值,可选

如果为真,则列将用作 xticks。

xticks列表或元组,可选

用于 xticks 的值列表。

colormap字符串或 matplotlib 色图,默认为 None

用于线颜色的色图。

axvlines布尔值,可选

如果为真,则在每个 xtick 处添加垂直线。

axvlines_kwds关键字,可选

传递给垂直线的 axvline 方法的选项。

sort_labels布尔值,默认为 False

对 class_column 标签进行排序,在分配颜色时有用。

**kwargs

传递给 matplotlib 绘图方法的选项。

返回:

matplotlib.axes.Axes

示例

>>> df = pd.read_csv(
...     'https://raw.githubusercontent.com/pandas-dev/'
...     'pandas/main/pandas/tests/io/data/csv/iris.csv'
... )
>>> pd.plotting.parallel_coordinates(
...     df, 'Name', color=('#556270', '#4ECDC4', '#C7F464')
... ) 

../../_images/pandas-plotting-parallel_coordinates-1.png

pandas.plotting.plot_params

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.plot_params.html

pandas.plotting.plot_params = {'xaxis.compat': False}

存储 pandas 绘图选项。

允许参数别名,因此您可以直接使用与绘图函数参数相同的参数名称,但以便于后续分组的规范格式存储。

示例

>>> np.random.seed(42)
>>> df = pd.DataFrame({'A': np.random.randn(10),
...                   'B': np.random.randn(10)},
...                   index=pd.date_range("1/1/2000",
...                   freq='4MS', periods=10))
>>> with pd.plotting.plot_params.use("x_compat", True):
...     _ = df["A"].plot(color="r")
...     _ = df["B"].plot(color="g") 

../../_images/pandas-plotting-plot_params-1.png

pandas.plotting.radviz

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.radviz.html

pandas.plotting.radviz(frame, class_column, ax=None, color=None, colormap=None, **kwds)

在二维空间中绘制多维数据集。

DataFrame 中的每个 Series 被表示为圆上均匀分布的切片。根据每个 Series 上的值,在圆中渲染每个数据点。在 DataFrame 中高度相关的 Series 被放置在单位圆上更接近的位置。

RadViz 允许将 N 维数据集投影到二维空间中,在此空间中,每个维度的影响可以解释为所有维度的影响之间的平衡。

在描述 RadViz 的原始文章中提供了更多信息。

参数:

DataFrame

持有数据的对象。

类别列str

包含数据点类别名称的列名。

axmatplotlib.axes.Axes,可选

要添加信息的绘图实例。

颜色list[str] 或 tuple[str],可选

为每个类别分配一种颜色。例如:[‘blue’, ‘green’]。

颜色映射str 或 matplotlib.colors.Colormap,默认为 None

用于选择颜色的颜色映射。如果是字符串,则从 matplotlib 加载该名称的颜色映射。

**kwds

传递给 matplotlib 散点绘图方法的选项。

返回:

matplotlib.axes.Axes

另请参阅

pandas.plotting.andrews_curves

绘制聚类可视化。

示例

>>> df = pd.DataFrame(
...     {
...         'SepalLength': [6.5, 7.7, 5.1, 5.8, 7.6, 5.0, 5.4, 4.6, 6.7, 4.6],
...         'SepalWidth': [3.0, 3.8, 3.8, 2.7, 3.0, 2.3, 3.0, 3.2, 3.3, 3.6],
...         'PetalLength': [5.5, 6.7, 1.9, 5.1, 6.6, 3.3, 4.5, 1.4, 5.7, 1.0],
...         'PetalWidth': [1.8, 2.2, 0.4, 1.9, 2.1, 1.0, 1.5, 0.2, 2.1, 0.2],
...         'Category': [
...             'virginica',
...             'virginica',
...             'setosa',
...             'virginica',
...             'virginica',
...             'versicolor',
...             'versicolor',
...             'setosa',
...             'virginica',
...             'setosa'
...         ]
...     }
... )
>>> pd.plotting.radviz(df, 'Category') 

../../_images/pandas-plotting-radviz-1.png

pandas.plotting.register_matplotlib_converters

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.register_matplotlib_converters.html

pandas.plotting.register_matplotlib_converters()

使用 matplotlib 注册 pandas 格式化程序和转换器。

此函数修改全局matplotlib.units.registry字典。pandas 添加了自定义转换器以

  • pd.Timestamp

  • pd.Period

  • np.datetime64

  • datetime.datetime

  • datetime.date

  • datetime.time

另请参见

deregister_matplotlib_converters

移除 pandas 格式化程序和转换器。

示例

以下行由 pandas 自动完成,以便能够渲染绘图:

>>> pd.plotting.register_matplotlib_converters() 
>>> df = pd.DataFrame({'ts': pd.period_range('2020', periods=2, freq='M'),
...                    'y': [1, 2]
...                    })
>>> plot = df.plot.line(x='ts', y='y') 

../../_images/pandas-plotting-register_matplotlib_converters-1.png

手动取消注册会引发错误:

>>> pd.set_option("plotting.matplotlib.register_converters",
...               False)  
>>> df.plot.line(x='ts', y='y')  
Traceback (most recent call last):
TypeError: float() argument must be a string or a real number, not 'Period' 

pandas.plotting.scatter_matrix

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.scatter_matrix.html

pandas.plotting.scatter_matrix(frame, alpha=0.5, figsize=None, ax=None, grid=False, diagonal='hist', marker='.', density_kwds=None, hist_kwds=None, range_padding=0.05, **kwargs)

绘制散点矩阵。

参数:

frameDataFrame

alphafloat,可选

应用的透明度量。

figsize(float,float),可选

以英寸为单位的元组(宽度,高度)。

axMatplotlib 轴对象,可选

gridbool,可选

将此设置为 True 将显示网格。

diagonal

在对角线上选择‘kde’和‘hist’,分别用于核密度估计或直方图绘制。

markerstr,可选

Matplotlib 标记类型,默认为 ‘.’。

density_kwds关键字

要传递给核密度估计图的关键字参数。

hist_kwds关键字

要传递给 hist 函数的关键字参数。

range_paddingfloat,默认值为 0.05

相对于 (x_max - x_min) 或 (y_max - y_min) 的 x 和 y 轴范围的相对扩展。

**kwargs

要传递给散点函数的关键字参数。

返回:

numpy.ndarray

散点矩阵。

示例

>>> df = pd.DataFrame(np.random.randn(1000, 4), columns=['A','B','C','D'])
>>> pd.plotting.scatter_matrix(df, alpha=0.2)
array([[<Axes: xlabel='A', ylabel='A'>, <Axes: xlabel='B', ylabel='A'>,
 <Axes: xlabel='C', ylabel='A'>, <Axes: xlabel='D', ylabel='A'>],
 [<Axes: xlabel='A', ylabel='B'>, <Axes: xlabel='B', ylabel='B'>,
 <Axes: xlabel='C', ylabel='B'>, <Axes: xlabel='D', ylabel='B'>],
 [<Axes: xlabel='A', ylabel='C'>, <Axes: xlabel='B', ylabel='C'>,
 <Axes: xlabel='C', ylabel='C'>, <Axes: xlabel='D', ylabel='C'>],
 [<Axes: xlabel='A', ylabel='D'>, <Axes: xlabel='B', ylabel='D'>,
 <Axes: xlabel='C', ylabel='D'>, <Axes: xlabel='D', ylabel='D'>]],
 dtype=object) 

../../_images/pandas-plotting-scatter_matrix-1.png

pandas.plotting.table

原文:pandas.pydata.org/docs/reference/api/pandas.plotting.table.html

pandas.plotting.table(ax, data, **kwargs)

将 DataFrame 和 Series 转换为 matplotlib.table 的辅助函数。

参数:

axMatplotlib 轴对象

dataDataFrame 或 Series

表内容的数据。

**kwargs

要传递给 matplotlib.table.table 的关键字参数。如果未指定 rowLabels 或 colLabels,则使用数据索引或列名。

返回:

matplotlib 表对象

示例

>>> import matplotlib.pyplot as plt
>>> df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
>>> fix, ax = plt.subplots()
>>> ax.axis('off')
(0.0, 1.0, 0.0, 1.0)
>>> table = pd.plotting.table(ax, df, loc='center',
...                           cellLoc='center', colWidths=list([.2, .2])) 

../../_images/pandas-plotting-table-1.png

选项和设置

原文:pandas.pydata.org/docs/reference/options.html

用于配置全局行为的 API。更多信息请参阅用户指南。

处理选项

describe_option(pat[, _print_desc]) 打印一个或多个已注册选项的描述。
reset_option(pat) 将一个或多个选项重置为其默认值。
get_option(pat) 检索指定选项的值。
set_option(pat, value) 设置指定选项的值。
option_context(*args) 上下文管理器,用于在with语句上下文中临时设置选项。

数字格式化

set_eng_float_format([accuracy, use_eng_prefix]) 使用 SI 表示法在 DataFrame 中格式化浮点数。

处理选项

describe_option(pat[, _print_desc]) 打印一个或多个已注册选项的描述。
reset_option(pat) 将一个或多个选项重置为其默认值。
get_option(pat) 检索指定选项的值。
set_option(pat, value) 设置指定选项的值。
option_context(*args) 上下文管理器,用于在with语句上下文中临时设置选项。

数字格式化

set_eng_float_format([accuracy, use_eng_prefix]) 使用 SI 表示法在 DataFrame 中格式化浮点数。

pandas.describe_option

原文:pandas.pydata.org/docs/reference/api/pandas.describe_option.html

pandas.describe_option(pat, _print_desc=False) = <pandas._config.config.CallableDynamicDoc object>

打印一个或多个已注册选项的描述。

无参数调用以获取所有已注册选项的列表。

可用选项:

  • compute。[use_bottleneck,use_numba,use_numexpr]

  • 显示。[chop_threshold,colheader_justify,date_dayfirst,date_yearfirst,encoding,expand_frame_repr,float_format]

  • display.html。[border,table_schema,use_mathjax]

  • display。[large_repr,max_categories,max_columns,max_colwidth,max_dir_items,max_info_columns,max_info_rows,max_rows,max_seq_items,memory_usage,min_rows,multi_sparse,notebook_repr_html,pprint_nest_depth,precision,show_dimensions]

  • display.unicode。[ambiguous_as_wide,east_asian_width]

  • display。[width]

  • future。[infer_string,no_silent_downcasting]

  • io.excel.ods。[reader,writer]

  • io.excel.xls。[reader]

  • io.excel.xlsb。[reader]

  • io.excel.xlsm。[reader,writer]

  • io.excel.xlsx。[reader,writer]

  • io.hdf。[default_format,dropna_table]

  • io.parquet。[engine]

  • io.sql。[engine]

  • mode。[chained_assignment,copy_on_write,data_manager,sim_interactive,string_storage,use_inf_as_na]

  • plotting。[backend]

  • plotting.matplotlib。[register_converters]

  • styler.format。[decimal,escape,formatter,na_rep,precision,thousands]

  • styler.html。[mathjax]

  • styler.latex。[environment,hrules,multicol_align,multirow_align]

  • styler.render。[encoding,max_columns,max_elements,max_rows,repr]

  • styler.sparse。[columns,index]

参数:

patstr

正则表达式模式。所有匹配的键都将显示其描述。

_print_descbool,默认值为 True

如果为 True(默认值),则将描述打印到 stdout。否则,将描述返回为 unicode 字符串(用于测试)。

返回:

默认情况下为 None,如果 _print_desc 则描述为 unicode 字符串

为 False

注意

请参阅用户指南获取更多信息。

可用选项及其描述:

compute.use_bottleneckbool

如果安装了 bottleneck 库,则使用它来加速,默认值为 True 有效值:False,True [默认值:True] [当前值:True]

compute.use_numbabool

如果安装了 numba 引擎选项,则在选择操作中使用它,默认值为 False 有效值:False,True [默认值:False] [当前值:False]

compute.use_numexprbool

如果安装了 numexpr 库,则使用它来加速计算,默认值为 True 有效值:False,True [默认值:True] [当前值:True]

display.chop_thresholdfloat 或 None

如果设置为浮点值,则 repr 和 friends 将显示小于给定阈值的所有浮点值为 0。 [默认值:None] [当前值:None]

display.colheader_justify‘left’/’right’

控制列标题的对齐方式。由 DataFrameFormatter 使用。[默认值:right] [当前值:right]

display.date_dayfirstboolean

当为 True 时,打印和解析日期时以日为先,例如 20/01/2005 [默认值: False] [当前值: False]

display.date_yearfirstboolean

当为 True 时,打印和解析日期时以年为先,例如 2005/01/20 [默认值: False] [当前值: False]

display.encodingstr/unicode

默认为控制台检测到的编码。指定用于由 to_string 返回的字符串的编码,这些字符串通常是用于在控制台上显示的字符串。 [默认值: utf-8] [当前值: utf-8]

display.expand_frame_reprboolean

是否为宽 DataFrame 打印完整的 DataFrame repr,max_columns 仍然受到尊重,但如果其宽度超过 display.width,则输出将跨越多个“页面”。 [默认值: True] [当前值: True]

display.float_formatcallable

可调用对象应接受一个浮点数并返回希望数字的所需格式的字符串。这在一些地方使用,比如 SeriesFormatter。参见 formats.format.EngFormatter 以获取示例。 [默认值: None] [当前值: None]

display.html.borderint

在 DataFrame HTML repr 的 <table> 标签中插入一个 border=value 属性。 [默认值: 1] [当前值: 1]

display.html.table_schemaboolean

是否要为支持的前端发布一个表模式表示。 (默认值: False) [默认值: False] [当前值: False]

display.html.use_mathjaxboolean

当为 True 时,Jupyter 笔记本将使用 MathJax 处理表格内容,渲染用美元符号括起来的数学表达式。 (默认值: True) [默认值: True] [当前值: True]

display.large_repr‘truncate’/’info’

对于超过 max_rows/max_cols 的 DataFrame,repr(和 HTML repr)可以显示一个截断的表格,或切换到 df.info() 的视图(与 pandas 早期版本的行为相同)。 [默认值: truncate] [当前值: truncate]

display.max_categoriesint

设置 pandas 在打印“类别”或 dtype 为 “category”的 Series 时应输出的最大类别数。 [默认值: 8] [当前值: 8]

display.max_columnsint

如果超过 max_cols,切换到截断视图。根据 large_repr 的不同,对象要么被居中截断,要么以摘要视图打印出来。‘None’ 值表示无限制。

如果 python/IPython 在终端中运行且 large_repr 等于 ‘truncate’,则可以将其设置为 0 或 None,pandas 将自动检测终端的宽度并打印适合屏幕宽度的截断对象。IPython 笔记本、IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测,默认为 20。 [默认值: 0] [当前值: 0]

display.max_colwidthint 或 None

pandas 数据结构的 repr 中列的最大字符宽度。当列溢出时,在输出中嵌入一个“…” 占位符。‘None’ 值��示无限制。 [默认值: 50] [当前值: 50]

display.max_dir_itemsint

将添加到 dir(...)中的项目数。'None'值表示无限制。因为 dir 是缓存的,所以改变这个选项不会立即影响已经存在的数据框,直到删除或添加列。

这例如用于从数据框中建议列进行制表完成。[默认值:100] [当前值:100]

display.max_info_columns整数

max_info_columns在 DataFrame.info 方法中用于决定是否打印每列的信息。[默认值:100] [当前值:100]

display.max_info_rows整数

df.info()通常会显示每列的空值计数。对于大型数据框来说,这可能会相当慢。max_info_rowsmax_info_cols限制此空值检查仅适用于尺寸小于指定尺寸的数据框。[默认值:1690785] [当前值:1690785]

display.max_rows整数

如果超过了max_rows,则切换到截断视图。根据large_repr的不同,对象可以被居中截断或打印为摘要视图。'None'值表示无限制。

如果 Python/IPython 在终端中运行,且large_repr等于'截断',则可以将其设置为 0,pandas 将自动检测终端的高度,并打印适合屏幕高度的截断对象。IPython 笔记本、IPython qtconsole 或 IDLE 不在终端中运行,因此无法正确进行自动检测。[默认值:60] [当前值:60]

display.max_seq_items整数或None

当漂亮地打印长序列时,最多只会打印max_seq_items个项目。如果省略了项目,则将它们加上“…”加到结果字符串中。

如果设置为None,则要打印的项目数不受限制。[默认值:100] [当前值:100]

display.memory_usage布尔值、字符串或None

指定在调用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布尔值

“稀疏化”多重索引显示(不在组内显示外层级别中的重复元素)[默认值:True] [当前值:True]

display.notebook_repr_html布尔值

当为 True 时,IPython 笔记本将使用 pandas 对象的 html 表示(如果可用)。[默认值:True] [当前值:True]

display.pprint_nest_depth整数

控制漂亮打印时要处理的嵌套级别的数量。[默认值:3] [当前值:3]

display.precision整数

浮点数输出精度,指小数点后的位数,适用于常规格式和科学记数法。类似于numpy.set_printoptions()中的precision。[默认值:6] [当前值:6]

display.show_dimensions布尔值或'截断'

是否在 DataFrame 表示结束时打印维度。如果指定了‘truncate’,则只在帧被截断时打印维度(例如,未显示所有行和/或列)[默认值:截断] [当前值:截断]

display.unicode.ambiguous_as_wideboolean

是否使用 Unicode 中文宽度计算显示文本宽度。启用此选项可能会影响性能(默认值:假)[默认值:假] [当前值:假]

display.unicode.east_asian_widthboolean

是否使用 Unicode 中文宽度计算显示文本宽度。启用此选项可能会影响性能(默认值:假)[默认值:假] [当前值:假]

display.widthint

显示宽度,以字符为单位。如果 python/IPython 在终端中运行,则可以将其设置为 None,pandas 将正确自动检测宽度。请注意,IPython 笔记本、IPython qtconsole 或 IDLE 不在终端中运行,因此无法正确检测宽度。[默认值:80] [当前值:80]

future.infer_string 是否推断 str 对象序列为 pyarrow string dtype,在 pandas 3.0 中将成为默认值(在那时此选项将被弃用)。

[默认值:假] [当前值:假]

future.no_silent_downcasting 是否选择将来行为,其中将不会在 Series 和 DataFrame 的结果中静默降级 where、mask 和 clip 方法。静默降级将在 pandas 3.0 中移除(在那时此选项将被弃用)。

[默认值:假] [当前值:假]

io.excel.ods.readerstring

‘ods’ 文件的默认 Excel 读取引擎。可用选项:auto、odf、calamine。[默认值:自动] [当前值:自动]

io.excel.ods.writerstring

‘ods’ 文件的默认 Excel 写入引擎。可用选项:auto、odf。[默认值:自动] [当前值:自动]

io.excel.xls.readerstring

‘xls’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、calamine。[默认值:自动] [当前值:自动]

io.excel.xlsb.readerstring

‘xlsb’ 文件的默认 Excel 读取引擎。可用选项:auto、pyxlsb、calamine。[默认值:自动] [当前值:自动]

io.excel.xlsm.readerstring

‘xlsm’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、openpyxl、calamine。[默认值:自动] [当前值:自动]

io.excel.xlsm.writerstring

‘xlsm’ 文件的默认 Excel 写入引擎。可用选项:auto、openpyxl。[默认值:自动] [当前值:自动]

io.excel.xlsx.readerstring

‘xlsx’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、openpyxl、calamine。[默认值:自动] [当前值:自动]

io.excel.xlsx.writerstring

‘xlsx’ 文件的默认 Excel 写入引擎。可用选项:auto、openpyxl、xlsxwriter。[默认值:自动] [当前值:自动]

io.hdf.default_formatformat

默认格式写入格式,如果为 None,则 put 将默认为‘fixed’,append 将默认为‘table’ [默认值:无] [当前值:无]

io.hdf.dropna_tableboolean

在将行附加到表时删除所有 nan 行[默认:False] [当前:False]

io.parquet.enginestring

默认的 Parquet 读取器/写入器引擎。可用选项:‘auto’、‘pyarrow’、‘fastparquet’,默认为 ‘auto’ [默认:auto] [当前:auto]

io.sql.enginestring

默认的 SQL 读取器/写入器引擎。可用选项:‘auto’、‘sqlalchemy’,默认为 ‘auto’ [默认:auto] [当前:auto]

mode.chained_assignmentstring

尝试使用链式赋值时引发异常、警告或不采取任何操作,默认为警告 [默认:warn] [当前:warn]

mode.copy_on_writebool

使用新的复制-视图行为使用写时复制。除非被“PANDAS_COPY_ON_WRITE”环境变量覆盖(如果设置为“1”表示 True,需要在导入 pandas 之前设置),否则默认为 False。[默认:False] [当前:False]

mode.data_managerstring

内部数据管理器类型;可以是“block”或“array”。默认为“block”,除非被“PANDAS_DATA_MANAGER”环境变量覆盖(需要在导入 pandas 之前设置)。[默认:block] [当前:block](已弃用,请使用 `` 代替。)

mode.sim_interactiveboolean

是否模拟交互模式以进行测试目的[默认:False] [当前:False]

mode.string_storagestring

StringDtype 的默认存储方式。如果 future.infer_string 设置为 True,则忽略此选项。[默认:python] [当前:python]

mode.use_inf_as_naboolean

True 表示将 None、NaN、INF、-INF 视为 NA(旧方式),False 表示 None 和 NaN 是空值,但 INF、-INF 不是 NA(新方式)。

此选项已在 pandas 2.1.0 中弃用,将在 3.0 中删除。[默认:False] [当前:False](已弃用,请使用 `` 代替。)

plotting.backendstr

要使用的绘图后端。默认值为“matplotlib”,即 pandas 提供的后端。可以通过提供实现后端的模块名称来指定其他后端。[默认:matplotlib] [当前:matplotlib]

plotting.matplotlib.register_convertersbool 或 ‘auto’。

是否向 matplotlib 的单位注册表注册转换器以用于日期、时间、日期时间和周期。切换为 False 将删除转换器,恢复 pandas 覆盖的任何转换器。[默认:auto] [当前:auto]

styler.format.decimalstr

浮点数和复数的小数点字符表示。[默认:.] [当前:.]

styler.format.escapestr,可选

根据给定上下文(html 或 latex)是否转义某些字符。[默认:None] [当前:None]

styler.format.formatterstr、callable、dict,可选

作为 Styler.format 中默认使用的格式化程序对象。[默认:None] [当前:None]

styler.format.na_repstr,可选

标识为缺失的值的字符串表示。[默认:None] [当前:None]

styler.format.precisionint

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

styler.format.thousandsstr,可选

用于浮点数、整数和复数的千位分隔符的字符表示。[默认值:None] [当前值:None]

styler.html.mathjaxbool

如果为 False,将为表属性渲染特殊的 CSS 类,指示在 Jupyter Notebook 中不使用 Mathjax。[默认值:True] [当前值:True]

styler.latex.environmentstr

替换\begin{table}的环境。如果使用“longtable”,将得到特定的 longtable 环境格式。[默认值:None] [当前值:None]

styler.latex.hrulesbool

是否在顶部、底部和标题下方添加水平线。[默认值:False] [当前值:False]

styler.latex.multicol_align{“r”, “c”, “l”, “naive-l”, “naive-r”}

稀疏化 LaTeX 多列水平对齐的指定符号。也可以向非朴素值添加管道修饰符以绘制垂直线,例如,“|r”将在右对齐合并单元格的左侧绘制一条线。[默认值:r] [当前值:r]

styler.latex.multirow_align{“c”, “t”, “b”}

稀疏化 LaTeX 多行垂直对齐的指定符号。[默认值:c] [当前值:c]

styler.render.encodingstr

用于输出 HTML 和 LaTeX 文件的编码。[默认值:utf-8] [当前值:utf-8]

styler.render.max_columnsint,可选

将呈现的最大列数。仍可能会减少以满足max_elements,后者优先。[默认值:None] [当前值:None]

styler.render.max_elementsint

数据单元格()元素的最大数量,在需要时会在列、行或两者之间进行修剪。[默认值:262144] [当前值:262144]

styler.render.max_rowsint,可选

将呈现的最大行数。仍可能会减少以满足max_elements,后者优先。[默认值:None] [当前值:None]

styler.render.reprstr

确定在 Jupyter Notebook 中使用哪种输出格式{“html”, “latex”}。[默认值:html] [当前值:html]

styler.sparse.columnsbool

是否稀疏化层次列的显示。设置为 False 将为每个列的层次键中的每个显式级别元素显示一个。[默认值:True] [当前值:True]

styler.sparse.indexbool

是否稀疏化层次索引的显示。设置为 False 将为每行的层次键中的每个显式级别元素显示一个。[默认值:True] [当前值:True]

示例

>>> pd.describe_option('display.max_columns')  
display.max_columns : int
 If max_cols is exceeded, switch to truncate view... 

pandas.reset_option

原文:pandas.pydata.org/docs/reference/api/pandas.reset_option.html

pandas.reset_option(pat) = <pandas._config.config.CallableDynamicDoc object>

Reset one or more options to their default value.

Pass “all” as argument to reset all options.

Available options:

  • compute.[use_bottleneck, use_numba, use_numexpr]

  • display.[chop_threshold, colheader_justify, date_dayfirst, date_yearfirst, encoding, expand_frame_repr, float_format]

  • display.html.[border, table_schema, use_mathjax]

  • display.[large_repr, max_categories, max_columns, max_colwidth, max_dir_items, max_info_columns, max_info_rows, max_rows, max_seq_items, memory_usage, min_rows, multi_sparse, notebook_repr_html, pprint_nest_depth, precision, show_dimensions]

  • display.unicode.[ambiguous_as_wide, east_asian_width]

  • display.[width]

  • future.[infer_string, no_silent_downcasting]

  • io.excel.ods.[reader, writer]

  • io.excel.xls.[reader]

  • io.excel.xlsb.[reader]

  • io.excel.xlsm.[reader, writer]

  • io.excel.xlsx.[reader, writer]

  • io.hdf.[default_format, dropna_table]

  • io.parquet.[engine]

  • io.sql.[engine]

  • mode.[chained_assignment, copy_on_write, data_manager, sim_interactive, string_storage, use_inf_as_na]

  • plotting.[backend]

  • plotting.matplotlib.[register_converters]

  • styler.format.[decimal, escape, formatter, na_rep, precision, thousands]

  • styler.html.[mathjax]

  • styler.latex.[environment, hrules, multicol_align, multirow_align]

  • styler.render.[encoding, max_columns, max_elements, max_rows, repr]

  • styler.sparse.[columns, index]

Parameters:

patstr/regex

If specified only options matching prefix* will be reset. Note: partial matches are supported for convenience, but unless you use the full option name (e.g. x.y.z.option_name), your code may break in future versions if new options with similar names are introduced.

Returns:

None

Notes

Please reference the User Guide for more information.

The available options with its descriptions:

compute.use_bottleneckbool

Use the bottleneck library to accelerate if it is installed, the default is True Valid values: False,True [default: True] [currently: True]

compute.use_numbabool

Use the numba engine option for select operations if it is installed, the default is False Valid values: False,True [default: False] [currently: False]

compute.use_numexprbool

Use the numexpr library to accelerate computation if it is installed, the default is True Valid values: False,True [default: True] [currently: True]

display.chop_thresholdfloat or None

if set to a float value, all float values smaller than the given threshold will be displayed as exactly 0 by repr and friends. [default: None] [currently: None]

display.colheader_justify‘left’/’right’

Controls the justification of column headers. used by DataFrameFormatter. [default: right] [currently: right]

display.date_dayfirstboolean

When True, prints and parses dates with the day first, eg 20/01/2005 [default: False] [currently: False]

display.date_yearfirstboolean

当为 True 时,使用年份优先打印和解析日期,例如 2005/01/20 [默认值:False] [当前值:False]

display.encodingstr/unicode

默认为控制台检测到的编码。指定用于由 to_string 返回的字符串的编码,这些字符串通常是用于在控制台上显示的字符串。[默认值:utf-8] [当前值:utf-8]

display.expand_frame_repr 布尔值

是否为宽数据框打印完整的 DataFrame repr,max_columns 仍然受到尊重,但如果其宽度超过 display.width,则输出将跨越多个“页面”。[默认值:True] [当前值:True]

display.float_formatcallable

callable 应接受一个浮点数,并返回一个带有所需格式的字符串。这在一些地方使用,如 SeriesFormatter。请参阅 formats.format.EngFormatter 以获取示例。[默认值:无] [当前值:无]

display.html.border 整数

DataFrame HTML repr 的border=value属性被插入<table>标记中。[默认值:1] [当前值:1]

display.html.table_schema 布尔值

是否为支持它的前端发布表模式表示形式。 (默认值:False)[默认值:False] [当前值:False]

display.html.use_mathjax 布尔值

当为 True 时,Jupyter 笔记本将使用 MathJax 处理表内容,渲染由美元符号括起来的数学表达式。 (默认值:True)[默认值:True] [当前值:True]

display.large_repr‘truncate’/’info’

对于超过 max_rows/max_cols 的 DataFrames,repr(和 HTML repr)可以显示一个被截断的表格,或者切换到 df.info()中的视图(与 pandas 早期版本中的行为相同)。[默认值:truncate] [当前值:truncate]

display.max_categories 整数

这设置了 pandas 在打印“category”dtype 的分类或系列时应输出的最大类别数。[默认值:8] [当前值:8]

display.max_columns 整数

如果超过 max_cols,则切换到截断视图。根据 large_repr 的设置,对象要么被居中截断,要么以摘要视图打印。‘None’值表示无限制。

如果 python/IPython 在终端中运行,并且 large_repr 等于‘truncate’,则可以将其设置为 0 或 None,pandas 将自动检测终端的宽度并打印一个适合屏幕宽度的被截断的对象。IPython 笔记本,IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测,并且默认为 20。[默认值:0] [当前值:0]

display.max_colwidth 整数或无

pandas 数据结构 repr 中列的最大宽度(以字符为单位)。当列溢出时,输出中嵌入“…”占位符。‘None’值表示无限制。[默认值:50] [当前值:50]

display.max_dir_items 整数

将添加到 dir(…)的项目数。‘None’值表示无限制。由于 dir 被缓存,更改此选项不会立即影响已存在的数据框,直到删除或添加列为止。

例如,用于建议从数据框中的列进行制表符补全。[默认值:100] [当前值:100]

display.max_info_columnsint

max_info_columns 用于 DataFrame.info 方法,以决定是否打印每列信息。[默认值:100] [当前值:100]

display.max_info_rowsint

df.info()通常会显示每列的空值计数。对于大型数据框,这可能会相当慢。max_info_rows 和 max_info_cols 仅限制此空值检查到小于指定尺寸的数据框。[默认值:1690785] [当前值:1690785]

display.max_rowsint

如果超过 max_rows,切换到截断视图。根据 large_repr 的不同,对象要么被居中截断,要么以摘要视图打印出来。'None'值表示无限制。

如果 python/IPython 在终端中运行且 large_repr 等于'truncate',则可以将其设置为 0,pandas 将自动检测终端的高度并打印适合屏幕高度的截断对象。IPython 笔记本、IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测。[默认值:60] [当前值:60]

display.max_seq_itemsint 或 None

在漂亮打印长序列时,最多只会打印 max_seq_items 个项目。如果省略了项目,它们将通过在结果字符串中添加“…”来表示。

如果设置为 None,则要打印的项目数量是无限的。[默认值:100] [当前值:100]

display.memory_usagebool、字符串或 None

这指定在调用 df.info()时是否显示 DataFrame 的内存使用情况。有效值为 True、False、'deep' [默认值:True] [当前值:True]

display.min_rowsint

在截断视图中显示的行数(超过 max_rows 时)。当 max_rows 设置为 None 或 0 时被忽略。当设置为 None 时,遵循 max_rows 的值。[默认值:10] [当前值:10]

display.multi_sparseboolean

“稀疏化”MultiIndex 显示(不在组内的外部级别中显示重复元素)[默认值:True] [当前值:True]

display.notebook_repr_htmlboolean

当为 True 时,IPython 笔记本将使用 html 表示形式来显示 pandas 对象(如果可用)。[默认值:True] [当前值:True]

display.pprint_nest_depthint

控制在漂亮打印时要处理的嵌套级别的数量 [默认值:3] [当前值:3]

display.precisionint

浮点数输出精度,即小数点后的位数,用于常规格式化以及科学计数法。类似于numpy.set_printoptions()中的precision。[默认值:6] [当前值:6]

display.show_dimensionsboolean 或'truncate'

是否在 DataFrame repr 的末尾打印维度。如果指定了'truncate',则仅在数据框被截断时(例如未显示所有行和/或列)才打印维度。[默认值:truncate] [当前值:truncate]

display.unicode.ambiguous_as_wideboolean

是否使用 Unicode 东亚宽度来计算显示文本宽度。启用此选项可能会影响性能(默认值:False)[默认值:False] [当前值:False]

display.unicode.east_asian_widthboolean

是否使用 Unicode 东亚宽度来计算显示文本宽度。启用此选项可能会影响性能(默认值:False)[默认值:False] [当前值:False]

display.widthint

显示宽度的字符数。如果 python/IPython 在终端中运行,则可以将其设置为 None,pandas 将正确自动检测宽度。请注意,IPython 笔记本,IPython qtconsole 或 IDLE 不在终端中运行,因此无法正确检测宽度。[默认值:80] [当前值:80]

future.infer_string 是否推断 str 对象序列为 pyarrow 字符串 dtype,在 pandas 3.0 中将成为默认值(届时此选项将被弃用)。

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

future.no_silent_downcasting 是否选择未来行为,在 Series 和 DataFrame 的结果中静默降级,其中 mask 和 clip 方法。静默降级将在 pandas 3.0 中移除(届时此选项将被弃用)。

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

io.excel.ods.readerstring

默认的 Excel 读取引擎用于‘ods’文件。可用选项:auto, odf, calamine。[默认值:auto] [当前值:auto]

io.excel.ods.writerstring

默认的 Excel 写入引擎用于‘ods’文件。可用选项:auto, odf。[默认值:auto] [当前值:auto]

io.excel.xls.readerstring

默认的 Excel 读取引擎用于‘xls’文件。可用选项:auto, xlrd, calamine。[默认值:auto] [当前���:auto]

io.excel.xlsb.readerstring

默认的 Excel 读取引擎用于‘xlsb’文件。可用选项:auto, pyxlsb, calamine。[默认值:auto] [当前值:auto]

io.excel.xlsm.readerstring

默认的 Excel 读取引擎用于‘xlsm’文件。可用选项:auto, xlrd, openpyxl, calamine。[默认值:auto] [当前值:auto]

io.excel.xlsm.writerstring

默认的 Excel 写入引擎用于‘xlsm’文件。可用选项:auto, openpyxl。[默认值:auto] [当前值:auto]

io.excel.xlsx.readerstring

默认的 Excel 读取引擎用于‘xlsx’文件。可用选项:auto, xlrd, openpyxl, calamine。[默认值:auto] [当前值:auto]

io.excel.xlsx.writerstring

默认的 Excel 写入引擎用于‘xlsx’文件。可用选项:auto, openpyxl, xlsxwriter。[默认值:auto] [当前值:auto]

io.hdf.default_formatformat

默认格式写入格式,如果为 None,则 put 将默认为‘fixed’,append 将默认为‘table’ [默认值:None] [当前值:None]

io.hdf.dropna_tableboolean

在附加到表时删除所有 nan 行 [默认值:False] [当前值:False]

io.parquet.enginestring

默认的 parquet 读取/写入引擎。可用选项:‘auto’, ‘pyarrow’, ‘fastparquet’,默认值为‘auto’ [默认值:auto] [当前值:auto]

io.sql.enginestring

默认的 SQL 读取器/写入器引擎。可用选项为:‘auto’、‘sqlalchemy’,默认值为‘auto’ [默认值:auto] [当前值:auto]

mode.chained_assignmentstring

尝试使用链式赋值时引发异常、警告或无操作。默认值为 warn [默认值:warn] [当前值:warn]

mode.copy_on_writebool

使用新的复制-视图行为,使用写时复制。默认为 False,除非被 ‘PANDAS_COPY_ON_WRITE’ 环境变量覆盖(如果设置为“1”表示 True,则需要在导入 pandas 之前设置)。[默认值:False] [当前值:False]

mode.data_managerstring

内部数据管理器类型;可以是“block”或“array”。默认为“block”,除非被 ‘PANDAS_DATA_MANAGER’ 环境变量覆盖(需要在导入 pandas 之前设置)。[默认值:block] [当前值:block](已弃用,请使用 `` 代替。)

mode.sim_interactiveboolean

是否模拟交互模式以进行测试目的 [默认值:False] [当前值:False]

mode.string_storagestring

StringDtype 的默认存储。如果将 future.infer_string 设置为 True,则此选项将被忽略。[默认值:python] [当前值:python]

mode.use_inf_as_naboolean

True 表示将 None、NaN、INF、-INF 视为 NA(旧方式),False 表示 None 和 NaN 为 null,但 INF、-INF 不是 NA(新方式)。

该选项在 pandas 2.1.0 中已弃用,并将在 3.0 中移除。[默认值:False] [当前值:False](已弃用,请使用 `` 代替。)

plotting.backendstr

要使用的绘图后端。默认值为“matplotlib”,与 pandas 一起提供的后端。其他后端可以通过提供实现后端的模块的名称来指定。[默认值:matplotlib] [当前值:matplotlib]

plotting.matplotlib.register_convertersbool 或 ‘auto’。

是否向 matplotlib 的单位注册表注册转换器以进行日期、时间、日期时间和 Periods。将切换为 False 将删除转换器,恢复 pandas 覆盖的任何转换器。[默认值:auto] [当前值:auto]

styler.format.decimalstr

浮点数和复数的小数点表示的字符。[默认值:.] [当前值:.]

styler.format.escapestr,可选

根据给定的上下文是否转义某些字符;html 或 latex。[默认值:None] [当前值:None]

styler.format.formatterstr、callable、dict,可选

一个格式化对象,用作 Styler.format 中的默认值。[默认值:None] [当前值:None]

styler.format.na_repstr,可选

被识别为缺失值的值的字符串表示。[默认值:None] [当前值:None]

styler.format.precisionint

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

styler.format.thousandsstr,可选

浮点数、整数和复数的千位分隔符的字符表示。[默认值:None] [当前值:None]

styler.html.mathjaxbool

如果为 False,则会向表属性渲染特殊的 CSS 类,指示在 Jupyter Notebook 中不会使用 Mathjax。[默认值:True] [当前值:True]

styler.latex.environmentstr

替换 \begin{table} 的环境。如果使用“longtable”,则结果将以特定的 longtable 环境格式显示。[默认值:None] [当前值:None]

styler.latex.hrulesbool

是否在顶部和底部以及标题下方添加水平分隔线。[默认值:False] [当前值:False]

styler.latex.multicol_align{“r”, “c”, “l”, “naive-l”, “naive-r”}

稀疏化 LaTeX 多列水平对齐的规范器。也可以在非朴素值上添加管道装饰器以绘制垂直线,例如,“|r”将在右对齐的合并单元格的左侧绘制一条线。[默认值:r] [当前值:r]

styler.latex.multirow_align{“c”, “t”, “b”}

稀疏化 LaTeX 多行垂直对齐的规范器。[默认值:c] [当前值:c]

styler.render.encodingstr

用于输出 HTML 和 LaTeX 文件的编码。[默认值:utf-8] [当前值:utf-8]

styler.render.max_columnsint,可选

将呈现的最大列数。仍可能被减少以满足 max_elements,后者优先。[默认值:None] [当前值:None]

styler.render.max_elementsint

在列、行或两者都需要时,在修剪发生之前将呈现的数据单元格()元素的最大数量。[默认值:262144] [当前值:262144]

styler.render.max_rowsint,可选

将呈现的最大行数。仍可能被减少以满足 max_elements,后者优先。[默认值:None] [当前值:None]

styler.render.reprstr

确定在 Jupyter Notebook 中使用哪种输出格式,可选值为 {“html”, “latex”}。[默认值:html] [当前值:html]

styler.sparse.columnsbool

是否稀疏显示层次列。将其设置为 False 将在每列的每个层次关键字中显示每个显式级别元素。[默认值:True] [当前值:True]

styler.sparse.indexbool

是否稀疏显示分层索引。将其设置为 False 将在每行的每个显式级别元素中显示分层键。[默认值:True] [当前值:True]

示例

>>> pd.reset_option('display.max_columns') 

pandas.get_option

原文:pandas.pydata.org/docs/reference/api/pandas.get_option.html

pandas.get_option(pat) = <pandas._config.config.CallableDynamicDoc object>

获取指定选项的值。

可用选项:

  • compute.[use_bottleneck, use_numba, use_numexpr]

  • display.[chop_threshold, colheader_justify, date_dayfirst, date_yearfirst, encoding, expand_frame_repr, float_format]

  • display.html.[border, table_schema, use_mathjax]

  • display.[large_repr, max_categories, max_columns, max_colwidth, max_dir_items, max_info_columns, max_info_rows, max_rows, max_seq_items, memory_usage, min_rows, multi_sparse, notebook_repr_html, pprint_nest_depth, precision, show_dimensions]

  • display.unicode.[ambiguous_as_wide, east_asian_width]

  • display.[width]

  • future.[infer_string, no_silent_downcasting]

  • io.excel.ods.[reader, writer]

  • io.excel.xls.[reader]

  • io.excel.xlsb.[reader]

  • io.excel.xlsm.[reader, writer]

  • io.excel.xlsx.[reader, writer]

  • io.hdf.[default_format, dropna_table]

  • io.parquet.[engine]

  • io.sql.[engine]

  • mode.[chained_assignment, copy_on_write, data_manager, sim_interactive, string_storage, use_inf_as_na]

  • plotting.[backend]

  • plotting.matplotlib.[register_converters]

  • styler.format.[decimal, escape, formatter, na_rep, precision, thousands]

  • styler.html.[mathjax]

  • styler.latex.[environment, hrules, multicol_align, multirow_align]

  • styler.render.[encoding, max_columns, max_elements, max_rows, repr]

  • styler.sparse.[columns, index]

参数:

patstr

应匹配单个选项的正则表达式。注意:为方便起见,支持部分匹配,但除非使用完整的选项名称(例如 x.y.z.option_name),否则如果引入具有类似名称的新选项,您的代码可能在将来的版本中出现错误。

返回:

result选项的值

引发:

OptionError如果不存在此类选项

注:

请参考用户指南获取更多信息。

可用选项及其描述:

compute.use_bottleneckbool

如果安装了 bottleneck 库,则使用 bottleneck 库加速,默认为 True 有效值:False,True [默认:True] [当前:True]

compute.use_numbabool

对于某些操作,如果安装了 numba 引擎选项,则使用 numba 引擎选项,其默认值为 False 有效值:False,True [默认:False] [当前:False]

compute.use_numexprbool

如果安装了 numexpr 库,则使用 numexpr 库加速计算,默认为 True 有效值:False,True [默认:True] [当前:True]

display.chop_thresholdfloat 或 None

如果设置为浮点值,则 repr 等显示为给定阈值以下的所有浮点值将显示为确切的 0。 [默认:无] [当前:无]

display.colheader_justify‘left’/’right’

控制列标题的对齐方式。由 DataFrameFormatter 使用。 [默认:右] [当前:右]

display.date_dayfirstboolean

当为 True 时,以日为优先的方式打印和解析日期,例如 20/01/2005 [默认:False] [当前:False]

display.date_yearfirstboolean

当为 True 时,以年份优先的方式打印和解析日期,例如 2005/01/20 [default: False] [currently: False]

display.encodingstr/unicode

默认为控制台的检测到的编码。指定用于由 to_string 返回的字符串的编码,这些字符串通常是用于在控制台上显示的字符串。 [default: utf-8] [currently: utf-8]

display.expand_frame_reprboolean

是否打印出宽 DataFrames 的完整 DataFrame repr,max_columns 仍然受到尊重,但如果其宽度超过 display.width,则输出将跨多个“页面”进行换行。 [default: True] [currently: True]

display.float_formatcallable

此可调用应接受浮点数并返回具有所需格式的数字的字符串。在一些地方使用,如 SeriesFormatter。有关示例,请参阅 formats.format.EngFormatter。 [default: None] [currently: None]

display.html.borderint

DataFrame HTML 表示中在 <table> 标签中插入一个 border=value 属性。 [default: 1] [currently: 1]

display.html.table_schemaboolean

是否为支持的前端发布表格模式表示。 (默认值:False)[default: False] [currently: False]

display.html.use_mathjaxboolean

当为 True 时,Jupyter 笔记本将使用 MathJax 处理表格内容,呈现由美元符号包围的数学表达式。 (默认值:True)[default: True] [currently: True]

display.large_repr‘truncate’/’info’

对于超过 max_rows/max_cols 的 DataFrame,repr(和 HTML repr)可以显示截断的表格,或者切换到 df.info() 的视图(pandas 的早期版本中的行为)。[default: truncate] [currently: truncate]

display.max_categoriesint

这设置 pandas 在打印 Categorical 或 dtype 为 “category” 的 Series 时应输出的最大类别数。 [default: 8] [currently: 8]

display.max_columnsint

如果超过 max_cols,则切换到截断视图。根据 large_repr,对象要么居中截断,要么作为摘要视图打印。‘None’ 值表示无限制。

如果 python/IPython 在终端运行,并且 large_repr 等于 ‘truncate’,那么可以设置为 0 或 None,pandas 将自动检测终端的宽度,并打印适合屏幕宽度的截断对象。IPython 笔记本,IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测,并默认为 20。 [default: 0] [currently: 0]

display.max_colwidthint or None

pandas 数据结构 repr 中列的最大宽度(以字符为单位)。当列溢出时,输出中嵌入一个“…”占位符。‘None’ 值表示无限制。 [default: 50] [currently: 50]

display.max_dir_itemsint

将添加到 dir(…) 的项目数。‘None’ 值表示无限制。由于 dir 已缓存,更改此选项不会立即影响已存在的数据框,直到删除或添加列为止。

这用于从数据框中建议列以进行制表符完成。[默认值:100] [当前值:100]

display.max_info_columnsint

max_info_columns 用于 DataFrame.info 方法,以决定是否打印每列信息。[默认值:100] [当前值:100]

display.max_info_rowsint

df.info() 通常会显示每列的空值计数。对于大型框架,这可能会非常慢。max_info_rows 和 max_info_cols 仅限制对小于指定尺寸的框架执行此空值检查。[默认值:1690785] [当前值:1690785]

display.max_rowsint

如果超过 max_rows,则切换到截断视图。根据 large_repr,对象将被居中截断或打印为摘要视图。'None' 值表示无限制。

如果 Python/IPython 运行在终端,并且 large_repr 等于 'truncate',则可以将其设置为 0,并且 pandas 将自动检测终端的高度,并打印适合屏幕高度的截断对象。IPython 笔记本,IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测。[默认值:60] [当前值:60]

display.max_seq_itemsint 或 None

在漂亮地打印长序列时,将打印的最大项数限制为 max_seq_items。如果省略了项,则将通过在生成的字符串中添加“…”来表示。

如果设置为 None,则要打印的项数没有限制。[默认值:100] [当前值:100]

display.memory_usagebool,string 或者 None

当调用 df.info() 时,指定是否显示 DataFrame 的内存使用情况。有效值 True,False,'deep' [默认值:True] [当前值:True]

display.min_rowsint

截断视图中显示的行数(当超过 max_rows 时)。当 max_rows 设置为 None 或 0 时忽略。当设置为 None 时,遵循 max_rows 的值。[默认值:10] [当前值:10]

display.multi_sparseboolean

“sparsify” 多索引显示(不在组内的外部级别中显示重复的元素)[默认值:True] [当前值:True]

display.notebook_repr_htmlboolean

当为 True 时,IPython 笔记本将使用 pandas 对象的 HTML 表示(如果可用)。[默认值:True] [当前值:True]

display.pprint_nest_depthint

控制漂亮打印时要处理的嵌套级别数。[默认值:3] [当前值:3]

display.precisionint

浮点输出精度,以小数点后的位数表示,用于常规格式和科学计数法。类似于 numpy.set_printoptions() 中的 precision。[默认值:6] [当前值:6]

display.show_dimensionsboolean 或 'truncate'

是否在 DataFrame 表示的末尾打印维度。如果指定了 'truncate',则只在框架被截断时打印出维度(例如,不显示所有行和/或列)。[默认值:truncate] [当前值:truncate]

display.unicode.ambiguous_as_wideboolean

是否使用 Unicode 东亚宽度计算显示文本宽度。启用此选项可能会影响性能(默认值:False)[默认值:False] [当前值:False]

display.unicode.east_asian_widthboolean

是否使用 Unicode 东亚宽度计算显示文本宽度。启用此选项可能会影响性能(默认值:False)[默认值:False] [当前值:False]

display.widthint

字符显示宽度。如果 python/IPython 在终端上运行,则可以将其设置为 None,pandas 将正确地自动检测宽度。请注意,IPython 笔记本、IPython qtconsole 或 IDLE 不在终端运行,因此无法正确检测宽度。[默认值:80] [当前值:80]

future.infer_string 是否将 str 对象序列推断为 pyarrow 字符串数据类型,这将是 pandas 3.0 的默认行为(届时此选项将被弃用)。

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

future.no_silent_downcasting 是否选择使用未来行为,其中将 不会 在 Series 和 DataFrame 的结果中默默地降级 mask 和 clip 方法。在 pandas 3.0 中将删除默默降级(届时此选项将被弃用)。

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

io.excel.ods.readerstring

‘ods’ 文件的默认 Excel 读取引擎。可用选项:auto、odf、calamine。[默认值:auto] [当前值:auto]

io.excel.ods.writerstring

‘ods’ 文件的默认 Excel 写入引擎。可用选项:auto、odf。[默认值:auto] [当前值:auto]

io.excel.xls.readerstring

‘xls’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsb.readerstring

‘xlsb’ 文件的默认 Excel 读取引擎。可用选项:auto、pyxlsb、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsm.readerstring

‘xlsm’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、openpyxl、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsm.writerstring

‘xlsm’ 文件的默认 Excel 写入引擎。可用选项:auto、openpyxl。[默认值:auto] [当前值:auto]

io.excel.xlsx.readerstring

‘xlsx’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、openpyxl、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsx.writerstring

‘xlsx’ 文件的默认 Excel 读取引擎。可用选项:auto、openpyxl、xlsxwriter。[默认值:auto] [当前值:auto]

io.hdf.default_formatformat

默认格式写入格式,如果为 None,则 put 默认为 'fixed',append 默认为 'table'。[默认值:None] [当前值:None]

io.hdf.dropna_tableboolean

在附加到表时删除所有 nan 行。[默认值:False] [当前值:False]

io.parquet.enginestring

默认 parquet 读取/写入引擎。可用选项:‘auto’、‘pyarrow’、‘fastparquet’,默认为‘auto’ [默认值:auto] [当前值:auto]

io.sql.enginestring

默认的 SQL 读取器/写入器引擎。可用选项:‘auto’、‘sqlalchemy’,默认为‘auto’ [默认:auto] [当前值:auto]

mode.chained_assignmentstring

如果尝试使用链式赋值,则引发异常、警告或不执行任何操作,默认为警告 [默认:警告] [当前值:警告]

mode.copy_on_writebool

使用新的复制-查看行为,使用 Copy-on-Write。默认为 False,除非被‘PANDAS_COPY_ON_WRITE’环境变量覆盖(如果设置为“1”表示 True,需要在导入 pandas 之前设置)。 [默认:False] [当前值:False]

mode.data_managerstring

内部数据管理器类型;可以是“block”或“array”。默认为“block”,除非被‘PANDAS_DATA_MANAGER’环境变量覆盖(需要在导入 pandas 之前设置)。 [默认:block] [当前值:block](已弃用,请使用``代替。)

mode.sim_interactiveboolean

是否为测试目的模拟交互模式 [默认:False] [当前值:False]

mode.string_storagestring

StringDtype 的默认存储。如果future.infer_string设置为 True,则忽略此选项。 [默认:python] [当前值:python]

mode.use_inf_as_naboolean

True 表示将 None、NaN、INF、-INF 视为 NA(旧方式),False 表示 None 和 NaN 为 null,但 INF、-INF 不是 NA(新方式)。

该选项在 pandas 2.1.0 中已弃用,并将在 3.0 中移除。 [默认:False] [当前值:False](已弃用,请使用``代替。)

plotting.backendstr

要使用的绘图后端。默认值为“matplotlib”,即与 pandas 一起提供的后端。可以通过提供实现后端的模块的名称来指定其他后端。 [默认:matplotlib] [当前值:matplotlib]

plotting.matplotlib.register_convertersbool 或 ‘auto’。

是否向 matplotlib 的单位注册表中注册日期、时间、日期时间和 Periods 的转换器。切换为 False 将删除转换器,恢复 pandas 覆盖的任何转换器。 [默认:auto] [当前值:auto]

styler.format.decimalstr

浮点数和复数的小数分隔符的字符表示。 [默认:.] [当前值:.]

styler.format.escapestr,可选

根据给定的上下文是否转义特定字符;html 或 latex。 [默认:无] [当前值:无]

styler.format.formatterstr,callable,dict,可选

一个格式化对象,将在Styler.format中使用为默认值。 [默认:无] [当前值:无]

styler.format.na_repstr,可选

识别为缺失值的值的字符串表示。 [默认:无] [当前值:无]

styler.format.precisionint

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

styler.format.thousandsstr,可选

浮点数、整数和复数的千位分隔符的字符表示。 [默认:无] [当前值:无]

styler.html.mathjaxbool

如果为 False,将为表属性渲染特殊的 CSS 类,指示在 Jupyter Notebook 中不使用 Mathjax。 [默认:True] [当前值:True]

styler.latex.environmentstr

替换\begin{table}的环境。如果使用“longtable”,将得到特定的 longtable 环境格式。[默认值:None] [当前值:None]

styler.latex.hrulesbool

是否在顶部、底部和标题下方添加水平线。[默认值:False] [当前值:False]

styler.latex.multicol_align{“r”, “c”, “l”, “naive-l”, “naive-r”}

稀疏化的 LaTeX 多列的水平对齐规范。也可以向非朴素值添加管道装饰符以绘制垂直线,例如,“|r”将在右对齐合并单元格的左侧绘制一条线。[默认值:r] [当前值:r]

styler.latex.multirow_align{“c”, “t”, “b”}

稀疏化的 LaTeX 多行的垂直对齐规范。[默认值:c] [当前值:c]

styler.render.encodingstr

用于输出 HTML 和 LaTeX 文件的编码。[默认值:utf-8] [当前值:utf-8]

styler.render.max_columnsint, optional

将呈现的最大列数。仍可能会减少以满足max_elements,后者优先。[默认值:None] [当前值:None]

styler.render.max_elementsint

将在需要时在列、行或两者之间进行修剪之前将呈现的数据单元格()元素的最大数量。[默认值:262144] [当前值:262144]

styler.render.max_rowsint, optional

将呈现的最大行数。仍可能会减少以满足max_elements,后者优先。[默认值:None] [当前值:None]

styler.render.reprstr

在 Jupyter Notebook 中确定要使用的输出{“html”, “latex”}。[默认值:html] [当前值:html]

styler.sparse.columnsbool

是否稀疏显示分层列。将其设置为 False 将在每一列的分层键中显示每个显式级别元素。[默认值:True] [当前值:True]

styler.sparse.indexbool

是否稀疏显示分层索引。将其设置为 False 将在每一行的分层键中显示每个显式级别元素。[默认值:True] [当前值:True]

示例

>>> pd.get_option('display.max_columns')  
4 

pandas.set_option

原文:pandas.pydata.org/docs/reference/api/pandas.set_option.html

pandas.set_option(pat, value) = <pandas._config.config.CallableDynamicDoc object>

设置指定选项的值。

可用选项:

  • compute.[use_bottleneck, use_numba, use_numexpr]

  • display.[chop_threshold, colheader_justify, date_dayfirst, date_yearfirst, encoding, expand_frame_repr, float_format]

  • display.html.[border, table_schema, use_mathjax]

  • display.[large_repr, max_categories, max_columns, max_colwidth, max_dir_items, max_info_columns, max_info_rows, max_rows, max_seq_items, memory_usage, min_rows, multi_sparse, notebook_repr_html, pprint_nest_depth, precision, show_dimensions]

  • display.unicode.[ambiguous_as_wide, east_asian_width]

  • display.[width]

  • future.[infer_string, no_silent_downcasting]

  • io.excel.ods.[reader, writer]

  • io.excel.xls.[reader]

  • io.excel.xlsb.[reader]

  • io.excel.xlsm.[reader, writer]

  • io.excel.xlsx.[reader, writer]

  • io.hdf.[default_format, dropna_table]

  • io.parquet.[engine]

  • io.sql.[engine]

  • mode.[chained_assignment, copy_on_write, data_manager, sim_interactive, string_storage, use_inf_as_na]

  • plotting.[backend]

  • plotting.matplotlib.[register_converters]

  • styler.format.[decimal, escape, formatter, na_rep, precision, thousands]

  • styler.html.[mathjax]

  • styler.latex.[environment, hrules, multicol_align, multirow_align]

  • styler.render.[encoding, max_columns, max_elements, max_rows, repr]

  • styler.sparse.[columns, index]

参数:

patstr

应匹配单个选项的正则表达式。注意:为方便起见,支持部分匹配,但除非您使用完整选项名称(例如 x.y.z.option_name),否则如果引入了类似名称的新选项,则您的代码可能在将来的版本中出现故障。

valueobject

选项的新值。

返回:

None

引发:

如果不存在此选项,则引发 OptionError

注意事项

请参考用户指南以获取更多信息。

可用选项及其描述如下:

compute.use_bottleneckbool

如果安装了 bottleneck 库,则使用它加速,默认值为 True。有效值:False,True [默认值:True] [当前值:True]

compute.use_numbabool

如果安装了 numba 引擎选项,则用于选择操作,否则默认为 False。有效值:False,True [默认值:False] [当前值:False]

compute.use_numexprbool

如果安装了 numexpr 库,则使用它加速计算,默认值为 True。有效值:False,True [默认值:True] [当前值:True]

display.chop_thresholdfloat 或 None

如果设置为浮点值,则 repr 和 friends 将所有小于给定阈值的浮点值显示为 0。[默认值:None] [当前值:None]

display.colheader_justify‘left’/’right’

控制列标题的对齐方式。由 DataFrameFormatter 使用。[默认值:right] [当前值:right]

display.date_dayfirstboolean

当为 True 时,以日期为第一位打印和解析日期,例如 20/01/2005 [默认值:False] [当前值:False]

display.date_yearfirstboolean

当为 True 时,使用年份优先打印和解析日期,例如 2005/01/20 [默认值:False] [当前值:False]

display.encodingstr/unicode

默认为控制台检测到的编码。指定用于 to_string 返回的字符串的编码,这些字符串通常是用于在控制台上显示的。[默认值:utf-8] [当前值:utf-8]

display.expand_frame_reprboolean

是否打印宽数据帧的完整 DataFrame repr,仍然尊重 max_columns,但如果其宽度超过 display.width,输出将跨多个“页”换行。[默认值:True] [当前值:True]

display.float_formatcallable

可调用对象应接受浮点数并返回具有所需格式的字符串。这在某些地方使用,如 SeriesFormatter。请参阅 formats.format.EngFormatter 以获取示例。[默认值:None] [当前值:None]

display.html.borderint

为 DataFrame HTML repr 的 <table> 标签插入 border=value 属性。[默认值:1] [当前值:1]

display.html.table_schemaboolean

是否为支持的前端发布表格模式表示。 (默认值:False)[默认值:False] [当前值:False]

display.html.use_mathjaxboolean

当为 True 时,Jupyter 笔记本将使用 MathJax 处理表格内容,渲染由美元符号括起来的数学表达式。 (默认值:True)[默认值:True] [当前值:True]

display.large_repr‘truncate’/’info’

对于超过 max_rows/max_cols 的数据帧,repr(和 HTML repr)可以显示截断的表格,或者切换到 df.info() 的视图(与 pandas 较早版本中的行为相同)。[默认值:truncate] [当前值:truncate]

display.max_categoriesint

设置 pandas 在打印“类别”dtype 的“类别”或“Series”时应输出的最大类别数。[默认值:8] [当前值:8]

display.max_columnsint

如果超过 max_cols,则切换到截断视图。根据 large_repr,对象将被居中截断或打印为摘要视图。'None' 值表示无限制。

如果 Python/IPython 在终端中运行且 large_repr 等于 'truncate',则可以将其设置为 0 或 None,并且 pandas 将自动检测终端的宽度并打印适合屏幕宽度的截断对象。IPython 笔记本、IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测,并且默认为 20。[默认值:0] [当前值:0]

display.max_colwidthint 或 None

pandas 数据结构 repr 中列的最大字符宽度。当列溢出时,输出中嵌入一个“…”占位符。'None' 值表示无限制。[默认值:50] [当前值:50]

display.max_dir_itemsint

将添加到 dir(…) 的项目数。 'None' 值表示无限制。由于 dir 被缓存,改变此选项不会立即影响已经存在的数据帧,直到删除或添加列为止。

例如,用于从 DataFrame 提示列进行制表符完成。[默认值:100] [当前值:100]

display.max_info_columnsint

max_info_columns 在 DataFrame.info 方法中用于决定是否打印每列信息。[默认值:100] [当前值:100]

display.max_info_rowsint

df.info() 通常会显示每列的空值计数。对于大框架来说,这可能会相当慢。max_info_rows 和 max_info_cols 仅限制此空值检查到具有比指定的更小尺寸的框架。[默认值:1690785] [当前值:1690785]

display.max_rowsint

如果超过 max_rows,则切换到截断视图。根据 large_repr,对象要么被居中截断,要么被打印为摘要视图。'None' 值表示无限制。

如果 python/IPython 在终端中运行,并且 large_repr 等于 'truncate',则可以将其设置为 0,pandas 将自动检测终端的高度并打印一个适合屏幕高度的截断对象。IPython 笔记本,IPython qtconsole 或 IDLE 不在终端中运行,因此无法进行正确的自动检测。[默认值:60] [当前值:60]

display.max_seq_itemsint 或 None

在对长序列进行漂亮打印时,将打印不超过 max_seq_items 个项目。如果省略了项目,它们将通过将“…”添加到生成的字符串中来表示。

如果设置为 None,则要打印的项目数量无限制。[默认值:100] [当前值:100]

display.memory_usagebool,字符串或 None

当调用 df.info() 时,指定是否显示 DataFrame 的内存使用情况。有效值 True,False,'deep' [默认值:True] [当前值:True]

display.min_rowsint

在截断视图中显示的行数(当超过 max_rows 时)。当 max_rows 设置为 None 或 0 时被忽略。当设置为 None 时,遵循 max_rows 的值。 [默认值:10] [当前值:10]

display.multi_sparseboolean

“sparsify” 多索引显示(不在组内的外部级别中显示重复的元素) [默认值:True] [当前值:True]

display.notebook_repr_htmlboolean

当为 True 时,IPython 笔记本将使用 pandas 对象的 html 表示(如果可用)。[默认值:True] [当前值:True]

display.pprint_nest_depthint

控制在漂亮打印时处理的嵌套级别的数量 [默认值:3] [当前值:3]

display.precisionint

浮点输出精度,即小数点后的位数,用于常规格式和科学计数法。类似于 numpy.set_printoptions() 中的 precision。[默认值:6] [当前值:6]

display.show_dimensionsboolean 或 'truncate'

是否在 DataFrame repr 结尾打印维度。如果指定了 'truncate',则仅在截断帧时(例如未显示所有行和/或列)才打印维度。[默认值:truncate] [当前值:truncate]

display.unicode.ambiguous_as_wideboolean

是否使用 Unicode 东亚宽度来计算显示文本的宽度。启用此选项可能会影响性能(默认值:False)[默认值:False] [当前值:False]

display.unicode.east_asian_widthboolean

是否使用 Unicode 东亚宽度来计算显示文本的宽度。启用此选项可能会影响性能(默认值:False)[默认值:False] [当前值:False]

display.widthint

显示的宽度,以字符为单位。如果 python/IPython 在终端中运行,则可以将其设置为 None,并且 pandas 将正确地自动检测宽度。请注意,IPython 笔记本、IPython qtconsole 或 IDLE 不在终端中运行,因此无法正确检测宽度。[默认值:80] [当前值:80]

future.infer_string 是否推断 str 对象序列为 pyarrow string dtype,在 pandas 3.0 中将成为默认值(届时此选项将被弃用)。

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

future.no_silent_downcasting 是否选择启用未来行为,不会在 Series 和 DataFrame 的 where、mask 和 clip 方法中对结果进行静默降级。静默降级将在 pandas 3.0 中移除(届时此选项将被弃用)。

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

io.excel.ods.readerstring

‘ods’ 文件的默认 Excel 读取引擎。可用选项:auto、odf、calamine。[默认值:auto] [当前值:auto]

io.excel.ods.writerstring

‘ods’ 文件的默认 Excel 写入引擎。可用选项:auto、odf。[默认值:auto] [当前值:auto]

io.excel.xls.readerstring

‘xls’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsb.readerstring

‘xlsb’ 文件的默认 Excel 读取引擎。可用选项:auto、pyxlsb、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsm.readerstring

‘xlsm’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、openpyxl、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsm.writerstring

‘xlsm’ 文件的默认 Excel 写入引擎。可用选项:auto、openpyxl。[默认值:auto] [当前值:auto]

io.excel.xlsx.readerstring

‘xlsx’ 文件的默认 Excel 读取引擎。可用选项:auto、xlrd、openpyxl、calamine。[默认值:auto] [当前值:auto]

io.excel.xlsx.writerstring

‘xlsx’ 文件的默认 Excel 写入引擎。可用选项:auto、openpyxl、xlsxwriter。[默认值:auto] [当前值:auto]

io.hdf.default_formatformat

默认的写入格式,如果为 None,则 put 默认为 ‘fixed’,append 默认为 ‘table’ [默认值:None] [当前值:None]

io.hdf.dropna_tableboolean

在追加到表时删除所有 nan 行 [默认值:False] [当前值:False]

io.parquet.enginestring

默认的 parquet 读取/写入引擎。可用选项:‘auto’、‘pyarrow’、‘fastparquet’,默认为 ‘auto’ [默认值:auto] [当前值:auto]

io.sql.enginestring

默认的 SQL 读取/写入引擎。可用选项:‘auto’、‘sqlalchemy’,默认为‘auto’ [默认值:auto] [当前值:auto]

mode.chained_assignmentstring

如果尝试使用链式赋值,则引发异常、警告或不采取任何操作,默认为警告 [默认值:warn] [当前值:warn]

mode.copy_on_writebool

使用新的复制-查看行为,使用写时复制。默认为 False,除非被 ‘PANDAS_COPY_ON_WRITE’ 环境变量覆盖(如果设置为“1”为 True,则需要在导入 pandas 之前设置)。[默认值:False] [当前值:False]

mode.data_managerstring

内部数据管理器类型;可以是“block”或“array”。默认为“block”,除非被 ‘PANDAS_DATA_MANAGER’ 环境变量覆盖(需要在导入 pandas 之前设置)。[默认值:block] [当前值:block](已弃用,使用 代替。)

mode.sim_interactiveboolean

是否模拟交互模式以进行测试目的 [默认值:False] [当前值:False]

mode.string_storagestring

默认的 StringDtype 存储方式。如果 future.infer_string 设置为 True,则此选项将被忽略。[默认值:python] [当前值:python]

mode.use_inf_as_naboolean

True 表示将 None、NaN、INF、-INF 视为 NA(旧方式),False 表示 None 和 NaN 是空值,但 INF、-INF 不是 NA(新方式)。

此选项在 pandas 2.1.0 中已弃用,并将在 3.0 中删除。[默认值:False] [当前值:False](已弃用,使用 代替。)

plotting.backendstr

要使用的绘图后端。默认值为“matplotlib”,即与 pandas 提供的后端。可以通过提供实现后端的模块的名称来指定其他后端。[默认值:matplotlib] [当前值:matplotlib]

plotting.matplotlib.register_convertersbool 或 ‘auto’。

是否向 matplotlib 的单位注册表注册转换器以进行日期、时间、日期时间和 Periods。将其切换为 False 将删除转换器,恢复 pandas 覆盖的任何转换器。[默认值:auto] [当前值:auto]

styler.format.decimalstr

浮点数和复数的小数分隔符的字符表示。[默认值:.] [当前值:.]

styler.format.escapestr,可选

是否根据给定的上下文(html 或 latex)转义某些字符。[默认值:None] [当前值:None]

styler.format.formatterstr,可调用,字典,可选

作为 Styler.format 中的默认值使用的格式化器对象。[默认值:None] [当前值:None]

styler.format.na_repstr,可选

被识别为缺失值的值的字符串表示。[默认值:None] [当前值:None]

styler.format.precisionint

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

styler.format.thousandsstr,可选

浮点数、整数和复数的千分位分隔符的字符表示。[默认值:None] [当前值:None]

styler.html.mathjaxbool

如果 False,则渲染特殊的 CSS 类到表属性,指示在 Jupyter Notebook 中不会使用 Mathjax。[默认值:True] [当前值:True]

styler.latex.environmentstr

替换 \begin{table} 的环境。如果使用“longtable”,则结果将采用特定的 longtable 环境格式。[默认:None] [当前:None]

styler.latex.hrulesbool

是否在标题上方、下方和头部下方添加水平规则。[默认:False] [当前:False]

styler.latex.multicol_align{“r”,“c”,“l”,“naive-l”,“naive-r”}

稀疏化的 LaTeX 多列的水平对齐的说明符。也可以将管道装饰符添加到非朴素值以绘制垂直规则,例如。“|r”将在右对齐合并单元格的左侧绘制规则。[默认:r] [当前:r]

styler.latex.multirow_align{“c”,“t”,“b”}

稀疏化的 LaTeX 多行的垂直对齐的说明符。[默认:c] [当前:c]

styler.render.encodingstr

用于输出 HTML 和 LaTeX 文件的编码。[默认:utf-8] [当前:utf-8]

styler.render.max_columnsint,可选

将被渲染的最大列数。可能会被减少以满足 max_elements,其优先级更高。[默认:None] [当前:None]

styler.render.max_elementsint

在在列、行或两者之间渲染之前将被渲染的数据单元 () 元素的最大数量。[默认:262144] [当前:262144]

styler.render.max_rowsint,可选

将被渲染的最大行数。可能会被减少以满足 max_elements,其优先级更高。[默认:None] [当前:None]

styler.render.reprstr

在 Jupyter Notebook 中确定要使用的输出类型为{“html”,“latex”}。[默认:html] [当前:html]

styler.sparse.columnsbool

是否稀疏显示分层列。设置为 False 将在每个列的分层键中显示每个明确的级别元素。[默认:True] [当前:True]

styler.sparse.indexbool

是否稀疏显示分层索引。设置为 False 将在每一行的分层键中显示每个明确的级别元素。[默认:True] [当前:True]

例子

>>> pd.set_option('display.max_columns', 4)
>>> df = pd.DataFrame([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
>>> df
 0  1  ...  3   4
0  1  2  ...  4   5
1  6  7  ...  9  10
[2 rows x 5 columns]
>>> pd.reset_option('display.max_columns') 

pandas.option_context

原文:pandas.pydata.org/docs/reference/api/pandas.option_context.html

class pandas.option_context(*args)

上下文管理器,用于在 with 语句上下文中临时设置选项。

你需要像这样调用 option_context(pat, val, [(pat, val), ...])

示例

>>> from pandas import option_context
>>> with option_context('display.max_rows', 10, 'display.max_columns', 5):
...     pass 

方法

pandas.set_eng_float_format

原文:pandas.pydata.org/docs/reference/api/pandas.set_eng_float_format.html

pandas.set_eng_float_format(accuracy=3, use_eng_prefix=False)

在 DataFrame 中使用国际单位制表示法格式化浮点数。

参数:

精度int,默认为 3

浮点数小数点后的位数。

use_eng_prefixbool,默认为 False

是否使用国际单位制前缀表示值。

返回:

None

示例

>>> df = pd.DataFrame([1e-9, 1e-3, 1, 1e3, 1e6])
>>> df
 0
0  1.000000e-09
1  1.000000e-03
2  1.000000e+00
3  1.000000e+03
4  1.000000e+06 
>>> pd.set_eng_float_format(accuracy=1)
>>> df
 0
0  1.0E-09
1  1.0E-03
2  1.0E+00
3  1.0E+03
4  1.0E+06 
>>> pd.set_eng_float_format(use_eng_prefix=True)
>>> df
 0
0  1.000n
1  1.000m
2   1.000
3  1.000k
4  1.000M 
>>> pd.set_eng_float_format(accuracy=1, use_eng_prefix=True)
>>> df
 0
0  1.0n
1  1.0m
2   1.0
3  1.0k
4  1.0M 
>>> pd.set_option("display.float_format", None)  # unset option 

扩展

原文:pandas.pydata.org/docs/reference/extensions.html

这些主要是供图书馆作者扩展 pandas 对象。

api.extensions.register_extension_dtype(cls) 将扩展类型注册为 pandas 的类装饰器。
api.extensions.register_dataframe_accessor(name) 在 DataFrame 对象上注册自定义访问器。
api.extensions.register_series_accessor(name) 在 Series 对象上注册自定义访问器。
api.extensions.register_index_accessor(name) 在索引对象上注册自定义访问器。
api.extensions.ExtensionDtype() 自定义数据类型,与 ExtensionArray 配对使用。
api.extensions.ExtensionArray() 自定义 1-D 数组类型的抽象基类。
arrays.NumpyExtensionArray(values[, copy]) 一个用于 NumPy 数据的 pandas 扩展数组。

另外,我们有一些实用方法来确保您的对象行为正确。

api.indexers.check_array_indexer(array, indexer) 检查索引器是否是数组的有效索引器。

哨兵 pandas.api.extensions.no_default 用作某些方法的默认值。 使用 is 比较来检查用户是否提供了非默认值。

pandas.api.extensions.register_extension_dtype

原文:pandas.pydata.org/docs/reference/api/pandas.api.extensions.register_extension_dtype.html

pandas.api.extensions.register_extension_dtype(cls)

使用类装饰器将 ExtensionType 注册到 pandas 中。

这样可以启用像 .astype(name) 这样的操作,其中 name 是 ExtensionDtype 的名称。

返回:

可调用对象

一个类装饰器。

示例

>>> from pandas.api.extensions import register_extension_dtype, ExtensionDtype
>>> @register_extension_dtype
... class MyExtensionDtype(ExtensionDtype):
...     name = "myextension" 

pandas.api.extensions.register_dataframe_accessor

原文:pandas.pydata.org/docs/reference/api/pandas.api.extensions.register_dataframe_accessor.html

pandas.api.extensions.register_dataframe_accessor(name)

在 DataFrame 对象上注册自定义访问器。

参数:

namestr

注册访问器的名称。如果此名称与现有属性冲突,则会发出警告。

返回:

可调用的

一个类装饰器。

另请参阅

register_dataframe_accessor

在 DataFrame 对象上注册自定义访问器。

register_series_accessor

在 Series 对象上注册自定义访问器。

register_index_accessor

在 Index 对象上注册自定义访问器。

注意事项

当被访问时,你的访问器将初始化为用户正在交互的 pandas 对象。因此签名必须是

def __init__(self, pandas_object):  # noqa: E999
    ... 

为了与 pandas 方法保持一致,如果传递给访问器的数据具有不正确的 dtype,则应引发 AttributeError

>>> pd.Series(['a', 'b']).dt
Traceback (most recent call last):
...
AttributeError: Can only use .dt accessor with datetimelike values 

示例

在你的库代码中:

import pandas as pd

@pd.api.extensions.register_dataframe_accessor("geo")
class GeoAccessor:
    def __init__(self, pandas_obj):
        self._obj = pandas_obj

    @property
    def center(self):
        # return the geographic center point of this DataFrame
        lat = self._obj.latitude
        lon = self._obj.longitude
        return (float(lon.mean()), float(lat.mean()))

    def plot(self):
        # plot this array's data on a map, e.g., using Cartopy
        pass 

回到交互式 IPython 会话:

In [1]: ds = pd.DataFrame({"longitude": np.linspace(0, 10),
 ...:                   "latitude": np.linspace(0, 20)})
In [2]: ds.geo.center
Out[2]: (5.0, 10.0)
In [3]: ds.geo.plot()  # plots data on a map 

pandas.api.extensions.register_series_accessor

原文:pandas.pydata.org/docs/reference/api/pandas.api.extensions.register_series_accessor.html

pandas.api.extensions.register_series_accessor(name)

在 Series 对象上注册自定义访问器。

参数:

namestr

应该注册访问器的名称。如果此名称与预先存在的属性冲突,则会发出警告。

返回:

callable

类装饰器。

另请参阅

register_dataframe_accessor

在 DataFrame 对象上注册自定义访问器。

register_series_accessor

在 Series 对象上注册自定义访问器。

register_index_accessor

在 Index 对象上注册自定义访问器。

注意事项

当访问时,用户将使用 pandas 对象初始化您的访问器。因此,签名必须是

def __init__(self, pandas_object):  # noqa: E999
    ... 

为了与 pandas 方法保持一致,如果传递给访问器的数据具有不正确的 dtype,则应引发 AttributeError

>>> pd.Series(['a', 'b']).dt
Traceback (most recent call last):
...
AttributeError: Can only use .dt accessor with datetimelike values 

示例

在您的库代码中:

import pandas as pd

@pd.api.extensions.register_dataframe_accessor("geo")
class GeoAccessor:
    def __init__(self, pandas_obj):
        self._obj = pandas_obj

    @property
    def center(self):
        # return the geographic center point of this DataFrame
        lat = self._obj.latitude
        lon = self._obj.longitude
        return (float(lon.mean()), float(lat.mean()))

    def plot(self):
        # plot this array's data on a map, e.g., using Cartopy
        pass 

返回交互式 IPython 会话:

In [1]: ds = pd.DataFrame({"longitude": np.linspace(0, 10),
 ...:                   "latitude": np.linspace(0, 20)})
In [2]: ds.geo.center
Out[2]: (5.0, 10.0)
In [3]: ds.geo.plot()  # plots data on a map 

pandas.api.extensions.register_index_accessor

原文:pandas.pydata.org/docs/reference/api/pandas.api.extensions.register_index_accessor.html

pandas.api.extensions.register_index_accessor(name)

在索引对象上注册自定义访问器。

参数:

namestr

应该注册访问器的名称。如果此名称与预先存在的属性冲突,则会发出警告。

返回:

可调用的

一个类装饰器。

另请参阅

register_dataframe_accessor

在数据帧对象上注册自定义访问器。

register_series_accessor

在序列对象上注册自定义访问器。

register_index_accessor

在索引对象上注册自定义访问器。

注:

当访问时,用户正在与 pandas 对象交互,您的访问器将被初始化。因此,签名必须是

def __init__(self, pandas_object):  # noqa: E999
    ... 

为了与 pandas 方法保持一致,如果传递给您的访问器的数据具有不正确的 dtype,则应引发AttributeError

>>> pd.Series(['a', 'b']).dt
Traceback (most recent call last):
...
AttributeError: Can only use .dt accessor with datetimelike values 

示例

在您的库代码中:

import pandas as pd

@pd.api.extensions.register_dataframe_accessor("geo")
class GeoAccessor:
    def __init__(self, pandas_obj):
        self._obj = pandas_obj

    @property
    def center(self):
        # return the geographic center point of this DataFrame
        lat = self._obj.latitude
        lon = self._obj.longitude
        return (float(lon.mean()), float(lat.mean()))

    def plot(self):
        # plot this array's data on a map, e.g., using Cartopy
        pass 

返回到交互式 IPython 会话:

In [1]: ds = pd.DataFrame({"longitude": np.linspace(0, 10),
 ...:                   "latitude": np.linspace(0, 20)})
In [2]: ds.geo.center
Out[2]: (5.0, 10.0)
In [3]: ds.geo.plot()  # plots data on a map 

pandas.api.extensions.ExtensionDtype

原文:pandas.pydata.org/docs/reference/api/pandas.api.extensions.ExtensionDtype.html

class pandas.api.extensions.ExtensionDtype

一个自定义数据类型,与 ExtensionArray 配对使用。

另请参阅

extensions.register_extension_dtype

使用类装饰器将 ExtensionType 注册到 pandas。

extensions.ExtensionArray

自定义 1-D 数组类型的抽象基类。

注释

该接口包括以下子类必须实现的抽象方法:

  • type

  • name

  • construct_array_type

下列属性和方法会影响 pandas 操作中 dtype 的行为

  • _is_numeric

  • _is_boolean

  • _get_common_dtype

na_value 类属性可用于设置此类型的默认 NA 值。 默认情况下使用 numpy.nan

ExtensionDtypes 必须是可散列的。 基类提供了一个默认实现,依赖于 _metadata 类属性。 _metadata 应该是一个包含定义数据类型的字符串的元组。 例如,对于 PeriodDtype,这是 freq 属性。

如果你有一个带参数的 dtype,应该设置 _metadata 类属性

理想情况下,_metadata 中的属性将与您的 ExtensionDtype.__init__ 中的参数匹配(如果有的话)。 如果 _metadata 中的任何属性没有实现标准的 __eq____hash__,这里的默认实现将不起作用。

示例

为了与 Apache Arrow (pyarrow) 交互,可以实现一个 __from_arrow__ 方法:此方法接收一个 pyarrow Array 或 ChunkedArray 作为唯一参数,并且预期返回适用于此 dtype 和传递的值的适当 pandas ExtensionArray:

>>> import pyarrow
>>> from pandas.api.extensions import ExtensionArray
>>> class ExtensionDtype:
...     def __from_arrow__(
...         self,
...         array: pyarrow.Array | pyarrow.ChunkedArray
...     ) -> ExtensionArray:
...         ... 

由于性能原因,此类不继承自 ‘abc.ABCMeta’。 由接口要求的方法和属性引发 pandas.errors.AbstractMethodError,并且不提供 register 方法来注册虚拟子类。

属性

index_class 当遇到此 dtype 时,从 Index.new 返回的 Index 子类。
kind 字符代码('biufcmMOSUV' 中的一个),默认 'O'
na_value 此类型默认的 NA 值。
name 标识数据类型的字符串。
names 字段名称的有序列表,如果没有字段,则为 None。
type 数组的标量类型,例如 int

方法

construct_array_type() 返回与此 dtype 关联的数组类型。
construct_from_string(string) 从字符串构造此类型。
empty(shape) 使用给定形状构造此 dtype 的 ExtensionArray。
is_dtype(dtype) 检查是否匹配 'dtype'。

pandas.api.extensions.ExtensionArray

原文:pandas.pydata.org/docs/reference/api/pandas.api.extensions.ExtensionArray.html

class pandas.api.extensions.ExtensionArray

自定义 1-D 数组类型的抽象基类。

pandas 将会将这个类的实例识别为具有自定义类型的合适数组,并且不会试图将它们强制转换为对象。它们可以直接存储在 DataFrameSeries 中。

注意事项

该接口包括必须由子类实现的以下抽象方法:

  • _from_sequence

  • _from_factorized

  • getitem

  • len

  • eq

  • 数据类型

  • 字节大小

  • isna

  • take

  • 复制

  • _concat_same_type

  • 插值

提供了一个默认 repr,显示类型、(截断的)数据、长度和 dtype。可以通过以下方法进行自定义或替换:

  • repr:ExtensionArray 的默认 repr。

  • _formatter:在 Series 或 DataFrame 中打印标量。

一些方法需要将 ExtensionArray 强制转换为 Python 对象的 ndarray,可以通过 self.astype(object) 进行。这可能是昂贵的。当性能是一个关注点时,我们强烈建议覆盖以下方法:

  • 填充缺失值

  • _pad_or_backfill

  • 删除缺失值

  • 唯一值

  • factorize / _values_for_factorize

  • argsort、argmax、argmin / _values_for_argsort

  • searchsorted

  • 映射

在这个类上实现的其余方法应该是高效的,因为它们只组成了抽象方法。然而,可能存在更高效的实现,并且这些方法可以被覆盖。

可以实现处理数组累积或减少的方法。

  • _accumulate

  • _reduce

可以实现从字符串解析的方法,这些方法将在诸如 pandas.io.parsers.read_csv 的方法中使用。

  • _from_sequence_of_strings

出于性能原因,该类没有继承自 ‘abc.ABCMeta’。接口所需的方法和属性引发 pandas.errors.AbstractMethodError,并且没有为注册虚拟子类提供 register 方法。

ExtensionArrays 仅限于 1 维。

它们可以由零个、一个或多个 NumPy 数组支持。例如,pandas.Categorical 是由两个数组支持的扩展数组,一个用于代码,一个用于类别。IPv6 地址数组可以由一个 NumPy 结构化数组支持,具有两个字段,一个用于低 64 位,一个用于高 64 位。或者它们可以由其他存储类型支持,例如 Python 列表。Pandas 不对数据存储方式做任何假设,只要它可以转换为 NumPy 数组即可。ExtensionArray 接口不对数据存储方式施加任何规则。但是,目前,由于与 pandas 内部的完全兼容性,支持数据不能存储在名为 .values._values 的属性中。但可以自由使用其他名称,如 .data._data._items 等。

如果实现了 NumPy 的 __array_ufunc__ 接口,pandas 期望

  1. 当输入中存在任何 Series 时,通过返回 NotImplemented 来推迟。Pandas 将提取数组并再次调用 ufunc。

  2. 您在类上定义一个 _HANDLED_TYPES 元组作为属性。Pandas 检查此元组以确定 ufunc 是否对当前类型有效。

有关更多信息,请参见 NumPy 通用函数。

默认情况下,ExtensionArrays 是不可哈希的。不可变的子类可以重写此行为。

示例

请参见以下内容:

pandas-dev/pandas

属性

dtype ExtensionDtype 的实例。
nbytes 存储此对象所需的字节数。
ndim 扩展数组只允许是 1 维的。
shape 返回数组维度的元组。

方法

argsort(*[, ascending, kind, na_position]) 返回将此数组排序的索引。
astype(dtype[, copy]) 将其转换为具有 'dtype' 的 NumPy 数组或 ExtensionArray。
copy() 返回数组的副本。
dropna() 返回没有 NA 值的 ExtensionArray。
duplicated([keep]) 返回布尔值的 ndarray,表示重复值。
factorize([use_na_sentinel]) 将扩展数组编码为枚举类型。
fillna([value, method, limit, copy]) 使用指定的方法填充 NA/NaN 值。
equals(other) 返回另一个数组是否等同于此数组。
insert(loc, item) 在给定位置插入项目。
interpolate(*, method, axis, index, limit, ...) 参见 DataFrame.interpolate.doc
isin(values) 在给定值中进行集合包含的逐点比较。
isna() 指示每个值是否缺失的一维数组。
ravel([order]) 返回此数组的扁平视图。
repeat(repeats[, axis]) 重复 ExtensionArray 的元素。
searchsorted(value[, side, sorter]) 查找元素应插入以保持顺序的索引位置。
shift([periods, fill_value]) 将值按所需数量移动。
take(indices, *[, allow_fill, fill_value]) 从数组中获取元素。
tolist() 返回值的列表。
unique() 计算唯一值的 ExtensionArray。
view([dtype]) 返回数组的视图。
_accumulate(name, *[, skipna]) 返回执行累积操作的 ExtensionArray。
_concat_same_type(to_concat) 连接多个相同类型的数组。
_explode() 将列表的每个元素转换为一行。
_formatter([boxed]) 标量值的格式化函数。
_from_factorized(values, original) 在因子化后重建 ExtensionArray。
_from_sequence(scalars, *[, dtype, copy]) 从标量序列构造新的 ExtensionArray。
_from_sequence_of_strings(strings, *[, ...]) 从字符串序列构造新的 ExtensionArray。
_hash_pandas_object(*, encoding, hash_key, ...) hash_pandas_object 的钩子��
_pad_or_backfill(*, method[, limit, ...]) 填充或回填值,由 Series/DataFrame 的 ffill 和 bfill 使用。
_reduce(name, *[, skipna, keepdims]) 返回执行缩减操作的标量结果。
_values_for_argsort() 返回用于排序的值。
_values_for_factorize() 返回一个适合进行因子分解的数组和缺失值。

pandas.arrays.NumpyExtensionArray

原文:pandas.pydata.org/docs/reference/api/pandas.arrays.NumpyExtensionArray.html

class pandas.arrays.NumpyExtensionArray(values, copy=False)

一个用于 NumPy 数据的 pandas ExtensionArray。

这主要是为了内部兼容性,单独使用时并不特别有用。

参数:

values ndarray

要包装的 NumPy ndarray。必须是一维的。

copy 布尔值,默认为 False

是否复制值。

示例

>>> pd.arrays.NumpyExtensionArray(np.array([0, 1, 2, 3]))
<NumpyExtensionArray>
[0, 1, 2, 3]
Length: 4, dtype: int64 

属性

None

方法

None

pandas.api.indexers.check_array_indexer

原文:pandas.pydata.org/docs/reference/api/pandas.api.indexers.check_array_indexer.html

pandas.api.indexers.check_array_indexer(array, indexer)

检查索引器是否对数组是有效的数组索引器。

对于布尔掩码,将检查数组和索引器是否具有相同的长度。将验证 dtype,并且如果它是整数或布尔 ExtensionArray,则将检查是否存在缺失值,并将其转换为适当的 numpy 数组。其他 dtype 将引发错误。

非数组索引器(整数、切片、省略号、元组等)将原样传递。

参数:

数组类似数组

被索引的数组(仅用于长度)。

索引器类似数组或类似列表

用于索引的类似数组的结构。尚未成为 numpy 数组或 ExtensionArray 的列表输入将被转换为其中之一。其他输入类型将原样传递。

返回:

numpy.ndarray

已验证的索引器作为可以用于索引的 numpy 数组。

引发:

IndexError

当长度不匹配时。

ValueError

当索引器无法转换为 numpy ndarray 进行索引(例如存在缺失值)时。

另请参见

api.types.is_bool_dtype

检查键是否为布尔类型。

示例

当检查布尔掩码时,当参数都有效时,将返回布尔 ndarray。

>>> mask = pd.array([True, False])
>>> arr = pd.array([1, 2])
>>> pd.api.indexers.check_array_indexer(arr, mask)
array([ True, False]) 

当长度不匹配时,将引发 IndexError。

>>> mask = pd.array([True, False, True])
>>> pd.api.indexers.check_array_indexer(arr, mask)
Traceback (most recent call last):
...
IndexError: Boolean index has wrong length: 3 instead of 2. 

布尔数组中的 NA 值被视为 False。

>>> mask = pd.array([True, pd.NA])
>>> pd.api.indexers.check_array_indexer(arr, mask)
array([ True, False]) 

numpy 布尔掩码将被原样传递(如果长度正确):

>>> mask = np.array([True, False])
>>> pd.api.indexers.check_array_indexer(arr, mask)
array([ True, False]) 

类似地,对于整数索引器,当其为有效索引器时,将返回整数 ndarray,否则将引发错误(对于整数索引器,不需要匹配的长度):

>>> indexer = pd.array([0, 2], dtype="Int64")
>>> arr = pd.array([1, 2, 3])
>>> pd.api.indexers.check_array_indexer(arr, indexer)
array([0, 2]) 
>>> indexer = pd.array([0, pd.NA], dtype="Int64")
>>> pd.api.indexers.check_array_indexer(arr, indexer)
Traceback (most recent call last):
...
ValueError: Cannot index with an integer indexer containing NA values 

对于非整数/布尔类型,将引发适当的错误:

>>> indexer = np.array([0., 2.], dtype="float64")
>>> pd.api.indexers.check_array_indexer(arr, indexer)
Traceback (most recent call last):
...
IndexError: arrays used as indices must be of integer or boolean type 

测试

原文:pandas.pydata.org/docs/reference/testing.html

断言函数

testing.assert_frame_equal(left, right[, ...]) 检查左右 DataFrame 是否相等。
testing.assert_series_equal(left, right[, ...]) 检查左右 Series 是否相等。
testing.assert_index_equal(left, right[, ...]) 检查左右 Index 是否相等。
testing.assert_extension_array_equal(left, right) 检查左右 ExtensionArrays 是否相等。

异常和警告

errors.AbstractMethodError(class_instance[, ...]) 为抽象方法引发此错误,而不是 NotImplementedError。
errors.AttributeConflictWarning 在使用 HDFStore 时,当索引属性冲突时引发警告。
errors.CategoricalConversionWarning 使用迭代器读取部分标记的 Stata 文件时引发警告。
errors.ChainedAssignmentError 尝试使用链式赋值进行设置时引发警告。
errors.ClosedFileError 尝试对已关闭的 HDFStore 文件执行操作时引发的异常。
errors.CSSWarning 转换 CSS 样式失败时引发警告。
errors.DatabaseError 在执行具有错误语法或引发错误的 SQL 时引发错误。
errors.DataError 当对非数值数据执行操作时引发的异常。
errors.DtypeWarning 从文件中读取列中的不同 dtype 时引发的警告。
errors.DuplicateLabelError 当操作会引入重复标签时引发的错误。
errors.EmptyDataError pd.read_csv 中遇到空数据或标题时引发的异常。
errors.IncompatibilityWarning 尝试在不兼容的 HDF5 文件上使用 where 条件时引发的警告。
errors.IndexingError 尝试索引时维度不匹配时引发的异常。
errors.InvalidColumnName 当列包含非有效 stata 名称时,to_stata 引发的警告。
errors.InvalidComparison 由 _validate_comparison_value 引发,指示无效比较。
errors.InvalidIndexError 尝试使用无效索引键时引发的异常。
errors.InvalidVersion 发现无效版本时,用户应参考 PEP 440。
errors.IntCastingNaNError 将带有 NaN 的数组转换(astype)为整数类型时引发的异常。
errors.LossySetitemError 尝试在不是无损的 np.ndarray 上执行 setitem 操作时引发的错误。
errors.MergeError 合并数据时引发的异常。
errors.NoBufferPresent 在 _get_data_buffer 中发出信号,表示没有请求的缓冲区。
errors.NullFrequencyError freq 不能为 null 时引发的异常。
errors.NumbaUtilError 对不受支持的 Numba 引擎例程引发的错误。
errors.NumExprClobberingError 尝试将内置 numexpr 名称用作变量名时引发的异常。
errors.OptionError 用于 pandas.options 引发的异常。
errors.OutOfBoundsDatetime 当日期时间超出可表示范围时引发。
errors.OutOfBoundsTimedelta 遇到无法表示的 timedelta 值时引发。
errors.ParserError 在解析文件内容时遇到错误时引发的异常。
errors.ParserWarning 在读取不使用默认 'c' 解析器的文件时引发的警告。
errors.PerformanceWarning 当可能影响性能时引发的警告。
errors.PossibleDataLossError 尝试在已经打开的 HDFStore 文件上再次打开时引发的异常。
errors.PossiblePrecisionLoss 在具有 int64 外或等于值的列上的 to_stata 引发的警告。
errors.PyperclipException 不支持剪贴板功能时引发的异常。
errors.PyperclipWindowsException(message) 在 Windows 不支持剪贴板功能时引发的异常。
errors.SettingWithCopyError 尝试在从 DataFrame 复制的切片上设置时引发的异常。
errors.SettingWithCopyWarning 尝试在从 DataFrame 复制的切片上设置时引发的警告。
errors.SpecificationError 在函数未正确指定时,由 agg 引发的异常。
errors.UndefinedVariableError(name[, is_local]) 在使用未定义变量名时,由 queryeval 引发的异常。
errors.UnsortedIndexError 在对未经过 lexsort 的 MultiIndex 进行切片时引发的错误。
errors.UnsupportedFunctionCall 尝试调用不支持的 numpy 函数时引发的异常。
errors.ValueLabelTypeMismatch 在包含非字符串值的类别列上使用 to_stata 时引发的警告。

Bug 报告函数

show_versions([as_json]) 提供有用信息,对于 bug 报告很重要。

测试套件运行器

test([extra_args, run_doctests]) 使用 pytest 运行 pandas 测试套件。

断言函数

testing.assert_frame_equal(left, right[, ...]) 检查左右两个 DataFrame 是否相等。
testing.assert_series_equal(left, right[, ...]) 检查左右两个 Series 是否相等。
testing.assert_index_equal(left, right[, ...]) 检查左右两个 Index 是否相等。
testing.assert_extension_array_equal(left, right) 检查左右两个 ExtensionArrays 是否相等。

异常和警告

errors.AbstractMethodError(class_instance[, ...]) 为抽象方法而不是 NotImplementedError 引发此错误。
errors.AttributeConflictWarning 在使用 HDFStore 时索引属性冲突时引发的警告。
errors.CategoricalConversionWarning 使用迭代器读取部分标记的 Stata 文件时引发的警告。
errors.ChainedAssignmentError 尝试使用链式赋值设置时引发的警告。
errors.ClosedFileError 尝试在关闭的 HDFStore 文件上执行操作时引发的异常。
errors.CSSWarning 转换 css 样式失败时引发的警告。
errors.DatabaseError 使用错误语法执行 sql 或引发错误的 sql 时引发的错误。
errors.DataError 在非数值数据上执行操作时引发的异常。
errors.DtypeWarning 从文件中读取列中不同的数据类型时引发的警告。
errors.DuplicateLabelError 当操作会引入重复标签时引发的错误。
errors.EmptyDataError pd.read_csv 中遇到空数据或标题时引发的异常。
errors.IncompatibilityWarning 尝试在不兼容的 HDF5 文件上使用 where 条件时引发的警告。
errors.IndexingError 尝试索引时维度不匹配时引发的异常。
errors.InvalidColumnName 当列包含非有效 stata 名称时,to_stata 引发的警告。
errors.InvalidComparison 由 _validate_comparison_value 引发以指示无效比较的异常。
errors.InvalidIndexError 尝试使用无效索引键时引发的异常。
errors.InvalidVersion 发现了无效版本,用户应参考 PEP 440。
errors.IntCastingNaNError 将带 NaN 的数组转换(astype)为整数类型时引发的异常。
errors.LossySetitemError 尝试对不是无损的 np.ndarray 进行 setitem 操作时引发。
errors.MergeError 在合并数据时引发的异常。
errors.NoBufferPresent 在 _get_data_buffer 中引发异常以表示没有请求的缓冲区。
errors.NullFrequencyError freq 不能为 null 时引发的异常。
errors.NumbaUtilError 不支持的 Numba 引擎例程引发的错误。
errors.NumExprClobberingError 尝试使用内置的 numexpr 名称作为变量名时引发的异常。
errors.OptionError 为 pandas.options 而引发的异常。
errors.OutOfBoundsDatetime 当日期时间超出可表示范围时引发。
errors.OutOfBoundsTimedelta 遇到无法表示的时间差值时引发。
errors.ParserError 在解析文件内容时遇到错误时引发的异常。
errors.ParserWarning 在读取不使用默认 'c' 解析器的文件时引发的警告。
errors.PerformanceWarning 在可能影响性能时引发的警告。
errors.PossibleDataLossError 在已经打开 HDFStore 文件时尝试打开 HDFStore 文件时引发的异常。
errors.PossiblePrecisionLoss 由于列具有超出或等于 int64 的值而在 to_stata 上引发的警告。
errors.PyperclipException 当不支持剪贴板功能时引发的异常。
errors.PyperclipWindowsException(message) 当 Windows 不支持剪贴板功能时引发的异常。
errors.SettingWithCopyError 在试图在从DataFrame复制的切片上设置时引发的异常。
errors.SettingWithCopyWarning 在试图在从DataFrame复制的切片上设置时引发的警告。
errors.SpecificationError 在函数未明确定义时,由 agg 引发的异常。
errors.UndefinedVariableError(name[, is_local]) 当使用未定义的变量名时,由 queryeval 引发的异常。
errors.UnsortedIndexError 在对未进行字典排序的 MultiIndex 进行切片时引发的错误。
errors.UnsupportedFunctionCall 尝试调用不支持的 numpy 函数时引发的异常。
errors.ValueLabelTypeMismatch 在包含非字符串值的类别列上 to_stata 时引发的警告。

Bug report function

show_versions([as_json]) 提供有用信息,对于错误报告非常重要。

测试套件运行器

test([extra_args, run_doctests]) 使用 pytest 运行 pandas 测试套件。

pandas.testing.assert_frame_equal

原文:pandas.pydata.org/docs/reference/api/pandas.testing.assert_frame_equal.html

pandas.testing.assert_frame_equal(left, right, check_dtype=True, check_index_type='equiv', check_column_type='equiv', check_frame_type=True, check_names=True, by_blocks=False, check_exact=_NoDefault.no_default, check_datetimelike_compat=False, check_categorical=True, check_like=False, check_freq=True, check_flags=True, rtol=_NoDefault.no_default, atol=_NoDefault.no_default, obj='DataFrame')

检查左右 DataFrame 是否相等。

此函数旨在比较两个 DataFrame 并输出任何差异。主要用于单元测试中。其他参数允许变化的严格程度执行相等性检查。

参数:

leftDataFrame

要比较的第一个 DataFrame。

rightDataFrame

要比较的第二个 DataFrame。

check_dtypebool,默认为 True

是否检查 DataFrame 的 dtype 是否相同。

check_index_typebool 或 {‘equiv’},默认为 ‘equiv’

是否检查索引类、dtype 和推断类型是否相同。

check_column_typebool 或 {‘equiv’},默认为 ‘equiv’

是否检查列的类别、dtype 和推断类型是否相同。作为assert_index_equal()exact参数传递。

check_frame_typebool,默认为 True

是否检查 DataFrame 类是否相同。

check_namesbool,默认为 True

是否检查 DataFrame 的索引和列属性的名称属性是否相同。

by_blocksbool,默认为 False

指定如何比较内部数据。如果为 False,则按列比较。如果为 True,则按块比较。

check_exactbool,默认为 False

是否精确比较数字。

在版本 2.2.0 中更改:如果没有指定check_exactrtolatol 中的任何一个,则对整数 dtype 默认为 True。

check_datetimelike_compatbool,默认为 False

比较可忽略 dtype 的可比较的日期时间。

check_categoricalbool,默认为 True

是否完全比较内部的 Categorical。

check_likebool,默认为 False

如果为 True,则忽略索引和列的顺序。注意:索引标签必须与其相应的行匹配(与列中的相同),相同的标签必须与相同的数据一起。

check_freqbool,默认为 True

是否检查 DatetimeIndex 或 TimedeltaIndex 上的 freq 属性。

check_flagsbool,默认为 True

是否检查 flags 属性。

rtolfloat,默认为 1e-5

相对公差。仅在 check_exact 为 False 时使用。

atolfloat,默认为 1e-8

绝对公差。仅在 check_exact 为 False 时使用。

objstr,默认为 ‘DataFrame’

指定正在比较的对象名称,内部用于显示适当的断言消息。

另请参阅

assert_series_equal

断言 Series 相等的等效方法。

DataFrame.equals

检查 DataFrame 的相等性。

示例

此示例显示了比较两个相等的 DataFrame,但列的 dtype 不同。

>>> from pandas.testing import assert_frame_equal
>>> df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 4]})
>>> df2 = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]}) 

df1 等于它自己。

>>> assert_frame_equal(df1, df1) 

df1 与 df2 不同,因为列‘b’的类型不同。

>>> assert_frame_equal(df1, df2)
Traceback (most recent call last):
...
AssertionError: Attributes of DataFrame.iloc[:, 1] (column name="b") are different 

属性“dtype”不同 [left]: int64 [right]: float64

忽略在 check_dtype 中不同的列数据类型。

>>> assert_frame_equal(df1, df2, check_dtype=False) 

pandas.testing.assert_series_equal

原文:pandas.pydata.org/docs/reference/api/pandas.testing.assert_series_equal.html

pandas.testing.assert_series_equal(left, right, check_dtype=True, check_index_type='equiv', check_series_type=True, check_names=True, check_exact=_NoDefault.no_default, check_datetimelike_compat=False, check_categorical=True, check_category_order=True, check_freq=True, check_flags=True, rtol=_NoDefault.no_default, atol=_NoDefault.no_default, obj='Series', *, check_index=True, check_like=False)

检查左右 Series 是否相等。

参数:

left Series

right Series

check_dtype 布尔值,默认为 True

是否检查 Series dtype 是否相同。

check_index_type 布尔值或 {‘equiv’},默认为 ‘equiv’

是否检查 Index 类、dtype 和 inferred_type 是否相同。

check_series_type 布尔值,默认为 True

是否检查 Series 类是否相同。

check_names 布尔值,默认为 True

是否检查 Series 和 Index 名称属性。

check_exact 布尔值,默认为 False

是否精确比较数字。

在版本 2.2.0 中更改:如果没有指定 check_exactrtolatol 中的任何一个,则默认为整数 dtypes 为 True。

check_datetimelike_compat 布尔值,默认为 False

比较可比较的 datetime-like,忽略 dtype。

check_categorical 布尔值,默认为 True

是否精确比较内部分类。

check_category_order 布尔值,默认为 True

是否比较内部 Categoricals 的类别顺序。

check_freq 布尔值,默认为 True

是否检查 DatetimeIndex 或 TimedeltaIndex 上的 freq 属性。

check_flags 布尔值,默认为 True

是否检查 flags 属性。

rtol 浮点数,默认为 1e-5

相对公差。仅在 check_exact 为 False 时使用。

atol 浮点数,默认为 1e-8

绝对公差。仅在 check_exact 为 False 时使用。

obj 字符串,默认为 ‘Series’

指定正在比较的对象名称,内部用于显示适当的断言消息。

check_index 布尔值,默认为 True

是否检查索引等价性。如果为 False,则仅比较值。

1.3.0 版本中的新功能。

check_like 布尔值,默认为 False

如果为 True,则忽略索引的顺序。如果 check_index 为 False,则必须为 False。注意:相同的标签必须具有相同的数据。

1.5.0 版本中的新功能。

示例

>>> from pandas import testing as tm
>>> a = pd.Series([1, 2, 3, 4])
>>> b = pd.Series([1, 2, 3, 4])
>>> tm.assert_series_equal(a, b) 

pandas.testing.assert_index_equal

原文:pandas.pydata.org/docs/reference/api/pandas.testing.assert_index_equal.html

pandas.testing.assert_index_equal(left, right, exact='equiv', check_names=True, check_exact=True, check_categorical=True, check_order=True, rtol=1e-05, atol=1e-08, obj='Index')

检查左右索引是否相等。

参数:

leftIndex

rightIndex

exactbool 或{‘equiv’},默认为‘equiv’

是否检查 Index 类,dtype 和 inferred_type 是否相同。如果为'equiv',则 RangeIndex 也可以替换为 dtype 为 int64 的 Index。

check_namesbool,默认为 True

是否检查 names 属性。

check_exactbool,默认为 True

是否精确比较数字。

check_categoricalbool,默认为 True

是否精确比较内部分类。

check_orderbool,默认为 True

是否比较索引条目的顺序以及它们的值。如果为 True,则两个索引必须包含相同的元素,且顺序相同。如果为 False,则两个索引必须包含相同的元素,但顺序可以不同。

rtolfloat,默认为 1e-5

相对容差。仅在check_exact为 False 时使用。

atolfloat,默认为 1e-8

绝对容差。仅在check_exact为 False 时使用。

objstr,默认为‘Index’

指定被比较的对象名称,内部用于显示相应的断言消息。

示例

>>> from pandas import testing as tm
>>> a = pd.Index([1, 2, 3])
>>> b = pd.Index([1, 2, 3])
>>> tm.assert_index_equal(a, b) 

pandas.testing.assert_extension_array_equal

原文:pandas.pydata.org/docs/reference/api/pandas.testing.assert_extension_array_equal.html

pandas.testing.assert_extension_array_equal(left, right, check_dtype=True, index_values=None, check_exact=_NoDefault.no_default, rtol=_NoDefault.no_default, atol=_NoDefault.no_default, obj='ExtensionArray')

检查左右 ExtensionArrays 是否相等。

参数:

left, rightExtensionArray

要比较的两个数组。

check_dtype布尔值,默认为 True

是否检查 ExtensionArray 的数据类型是否相同。

index_valuesIndex | numpy.ndarray,默认为 None

可选索引(左右均共享),用于输出。

check_exact布尔值,默认为 False

是否精确比较数字。

从版本 2.2.0 开始更改:如果未指定check_exactrtolatol中的任何一个,则默认为整数数据类型为 True。

rtol浮点数,默认为 1e-5

相对容差。仅在check_exact为 False 时使用。

atol浮点数,默认为 1e-8

绝对容差。仅在check_exact为 False 时使用。

obj字符串,默认为‘ExtensionArray’

指定正在比较的对象名称,内部用于显示适当的断言消息。

2.0.0 版中新增。

注意

缺失值与有效值分开检查。为每个计算缺失值的掩码并进行检查以匹配。剩余的全是有效值将被转换为对象 dtype 并进行检查。

示例

>>> from pandas import testing as tm
>>> a = pd.Series([1, 2, 3, 4])
>>> b, c = a.array, a.array
>>> tm.assert_extension_array_equal(b, c) 

pandas.errors.AbstractMethodError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.AbstractMethodError.html

exception pandas.errors.AbstractMethodError(class_instance, methodtype='method')

对于抽象方法,引发此错误而不是 NotImplementedError。

例子

>>> class Foo:
...     @classmethod
...     def classmethod(cls):
...         raise pd.errors.AbstractMethodError(cls, methodtype="classmethod")
...     def method(self):
...         raise pd.errors.AbstractMethodError(self)
>>> test = Foo.classmethod()
Traceback (most recent call last):
AbstractMethodError: This classmethod must be defined in the concrete class Foo 
>>> test2 = Foo().method()
Traceback (most recent call last):
AbstractMethodError: This classmethod must be defined in the concrete class Foo 

pandas.errors.AttributeConflictWarning

原文:pandas.pydata.org/docs/reference/api/pandas.errors.AttributeConflictWarning.html

exception pandas.errors.AttributeConflictWarning

当使用 HDFStore 时,索引属性冲突时会引发警告。

当尝试在 HDFStore 上附加一个与现有索引名称不同的索引,或者尝试在 HDFStore 上附加一个与现有索引频率不同的索引时发生。

示例

>>> idx1 = pd.Index(['a', 'b'], name='name1')
>>> df1 = pd.DataFrame([[1, 2], [3, 4]], index=idx1)
>>> df1.to_hdf('file', 'data', 'w', append=True)  
>>> idx2 = pd.Index(['c', 'd'], name='name2')
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], index=idx2)
>>> df2.to_hdf('file', 'data', 'a', append=True)  
AttributeConflictWarning: the [index_name] attribute of the existing index is
[name1] which conflicts with the new [name2]... 

pandas.errors.CategoricalConversionWarning

原文:pandas.pydata.org/docs/reference/api/pandas.errors.CategoricalConversionWarning.html

exception pandas.errors.CategoricalConversionWarning

在使用迭代器读取部分标记的 Stata 文件时会引发警告。

示例

>>> from pandas.io.stata import StataReader
>>> with StataReader('dta_file', chunksize=2) as reader: 
...   for i, block in enumerate(reader):
...      print(i, block)
... # CategoricalConversionWarning: One or more series with value labels... 

pandas.errors.ChainedAssignmentError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.ChainedAssignmentError.html

exception pandas.errors.ChainedAssignmentError

警告:尝试使用链式赋值时引发的警告。

当启用mode.copy_on_write选项时,链式赋值永远不起作用。在这种情况下,我们总是在设置一个临时对象,该对象是索引操作(getitem)的结果,而在写时复制下,始终表现为副本。因此,通过链式赋值永远无法更新原始的 Series 或 DataFrame。

欲了解视图与副本的更多信息,请参阅用户指南。

示例

>>> pd.options.mode.copy_on_write = True
>>> df = pd.DataFrame({'A': [1, 1, 1, 2, 2]}, columns=['A'])
>>> df["A"][0:3] = 10 
... # ChainedAssignmentError: ...
>>> pd.options.mode.copy_on_write = False 

pandas.errors.ClosedFileError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.ClosedFileError.html

exception pandas.errors.ClosedFileError

当尝试在已关闭的 HDFStore 文件上执行操作时引发异常。

示例

>>> store = pd.HDFStore('my-store', 'a') 
>>> store.close() 
>>> store.keys() 
... # ClosedFileError: my-store file is not open! 

pandas.errors.CSSWarning

原文:pandas.pydata.org/docs/reference/api/pandas.errors.CSSWarning.html

exception pandas.errors.CSSWarning

在转换 css 样式失败时会引发警告。

这可能是因为样式没有等效值,或者是因为样式格式不正确。

示例

>>> df = pd.DataFrame({'A': [1, 1, 1]})
>>> df.style.applymap(
...     lambda x: 'background-color: blueGreenRed;'
... ).to_excel('styled.xlsx')  
CSSWarning: Unhandled color format: 'blueGreenRed'
>>> df.style.applymap(
...     lambda x: 'border: 1px solid red red;'
... ).to_excel('styled.xlsx')  
CSSWarning: Unhandled color format: 'blueGreenRed' 

pandas.errors.DatabaseError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.DatabaseError.html

exception pandas.errors.DatabaseError

当执行具有错误语法或引发错误的 SQL 时,会引发错误。

Examples

>>> from sqlite3 import connect
>>> conn = connect(':memory:')
>>> pd.read_sql('select * test', conn) 
... # DatabaseError: Execution failed on sql 'test': near "test": syntax error 

pandas.errors.DataError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.DataError.html

exception pandas.errors.DataError

在非数字数据上执行操作时引发的异常。

例如,在非数字列上调用ohlc或在滚动窗口上调用函数。

示例

>>> ser = pd.Series(['a', 'b', 'c'])
>>> ser.rolling(2).sum()
Traceback (most recent call last):
DataError: No numeric types to aggregate 

pandas.errors.DtypeWarning

原文:pandas.pydata.org/docs/reference/api/pandas.errors.DtypeWarning.html

exception pandas.errors.DtypeWarning

当从文件中读取列中的不同 dtypes 时会发出警告。

由于 read_csv 或 read_table 在给定 CSV 文件的某些列中遇到非统一的 dtype 时会发出此警告。

另请参阅

read_csv

将 CSV(逗号分隔)文件读入 DataFrame。

read_table

将一般的分隔文件读入 DataFrame。

注意事项

处理较大文件时会发出此警告,因为 dtype 检查是每个读取的块进行的。

尽管会发出警告,CSV 文件会以单列中的混合类型进行读取,该列将是对象类型。请参阅下面的示例以更好地了解此问题。

示例

此示例创建并读取一个包含 int 和 str 的列的大型 CSV 文件。

>>> df = pd.DataFrame({'a': (['1'] * 100000 + ['X'] * 100000 +
...                          ['1'] * 100000),
...                    'b': ['b'] * 300000})  
>>> df.to_csv('test.csv', index=False)  
>>> df2 = pd.read_csv('test.csv')  
... # DtypeWarning: Columns (0) have mixed types 

需要注意的是,对于相同的输入‘1’,df2 将同时包含 str 和 int。

>>> df2.iloc[262140, 0]  
'1'
>>> type(df2.iloc[262140, 0])  
<class 'str'>
>>> df2.iloc[262150, 0]  
1
>>> type(df2.iloc[262150, 0])  
<class 'int'> 

解决此问题的一种方法是在 read_csv 和 read_table 函数中使用 dtype 参数来明确进行转换:

>>> df2 = pd.read_csv('test.csv', sep=',', dtype={'a': str}) 

没有发出警告。

pandas.errors.DuplicateLabelError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.DuplicateLabelError.html

exception pandas.errors.DuplicateLabelError

当操作会引入重复标签时引发的错误。

示例

>>> s = pd.Series([0, 1, 2], index=['a', 'b', 'c']).set_flags(
...     allows_duplicate_labels=False
... )
>>> s.reindex(['a', 'a', 'b'])
Traceback (most recent call last):
  ...
DuplicateLabelError: Index has duplicates.
 positions
label
a        [0, 1] 

pandas.errors.EmptyDataError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.EmptyDataError.html

exception pandas.errors.EmptyDataError

当遇到空数据或标题时,pd.read_csv 中会引发异常。

例子

>>> from io import StringIO
>>> empty = StringIO()
>>> pd.read_csv(empty)
Traceback (most recent call last):
EmptyDataError: No columns to parse from file 

pandas.errors.IncompatibilityWarning

原文:pandas.pydata.org/docs/reference/api/pandas.errors.IncompatibilityWarning.html

exception pandas.errors.IncompatibilityWarning

尝试在不兼容的 HDF5 文件上使用 where 条件时引发警告。

pandas.errors.IndexingError

原文:pandas.pydata.org/docs/reference/api/pandas.errors.IndexingError.html

exception pandas.errors.IndexingError

尝试索引时,如果维度不匹配,则会引发异常。

示例

>>> df = pd.DataFrame({'A': [1, 1, 1]})
>>> df.loc[..., ..., 'A'] 
... # IndexingError: indexer may only contain one '...' entry
>>> df = pd.DataFrame({'A': [1, 1, 1]})
>>> df.loc[1, ..., ...] 
... # IndexingError: Too many indexers
>>> df[pd.Series([True], dtype=bool)] 
... # IndexingError: Unalignable boolean Series provided as indexer...
>>> s = pd.Series(range(2),
...               index = pd.MultiIndex.from_product([["a", "b"], ["c"]]))
>>> s.loc["a", "c", "d"] 
... # IndexingError: Too many indexers 

pandas.errors.InvalidColumnName

原文:pandas.pydata.org/docs/reference/api/pandas.errors.InvalidColumnName.html

exception pandas.errors.InvalidColumnName

警告:由 to_stata 引发,该列包含一个无效的 stata 名称。

因为列名是无效的 Stata 变量,所以需要进行转换。

Examples

>>> df = pd.DataFrame({"0categories": pd.Series([2, 2])})
>>> df.to_stata('test') 
... # InvalidColumnName: Not all pandas column names were valid Stata variable... 
posted @ 2024-06-26 10:31  绝不原创的飞龙  阅读(36)  评论(0)    收藏  举报