Pandas-2-2-中文文档-三十七-
Pandas 2.2 中文文档(三十七)
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[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>
元素和所有相关元素class
和id
标识符,还是仅包括<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" > </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',如果 siunitx
为 True
,则为 '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()
表样式
内部 Styler 使用其 table_styles
对象来解析 column_format
、position
、position_float
和 label
输入参数。这些参数以以下格式添加到表样式中:
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
参数,实际上它同时控制三个命令:toprule
、bottomrule
和 midrule
。可以将 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"
... )
格式化
要格式化值,应先使用 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 后都将起作用:
但是,最后我们想添加一个仅限 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}
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.writer
或 io.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
。请参阅 fsspec
和 urllib
以获取更多详细信息,并且有关存储选项的更多示例,请参阅 此处。
自版本 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.copy
创建当前样式器的副本。
注意事项
此方法旨在将一个样式器的非数据相关属性复制到另一个样式器。它与 Styler.copy
不同,后者也复制数据和数据相关属性。
以下项目由于通常不是数据相关而导出:
- 由
apply
和map
添加的样式函数- 如果不明确,是否将轴和名称隐藏在显示中。
- 表属性
- 表格样式
以下属性被视为数据相关,因此不导出:
- 标题
- 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 函数的列表,通常使用apply
或map
添加。 -
“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.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 绘图方法的选项。
返回:
示例
>>> 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')
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)
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>
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 相当的图。
注释
返回类型取决于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'])
可以使用选项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')
可以传递字符串列表(即['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'])
可以通过给layout
传递一个元组来调整箱线图的布局:
>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
... layout=(2, 1))
可以对箱线图进行其他格式设置,例如取消网格(grid=False
),旋转 x 轴上的标签(例如rot=45
)或更改字体大小(例如fontsize=15
):
>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)
参数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')
取消手动注销注册器将引发错误:
>>> 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()
使用 lag=1
的滞后图返回
>>> pd.plotting.lag_plot(s, lag=1)
<Axes: xlabel='y(t)', ylabel='y(t + 1)'>
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')
... )
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")
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 散点绘图方法的选项。
返回:
另请参阅
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')
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')
手动取消注册会引发错误:
>>> 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)
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]))
选项和设置
用于配置全局行为的 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_rows
和max_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 对象。
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 将会将这个类的实例识别为具有自定义类型的合适数组,并且不会试图将它们强制转换为对象。它们可以直接存储在 DataFrame
或 Series
中。
注意事项
该接口包括必须由子类实现的以下抽象方法:
-
_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 期望
-
当输入中存在任何 Series 时,通过返回
NotImplemented
来推迟。Pandas 将提取数组并再次调用 ufunc。 -
您在类上定义一个
_HANDLED_TYPES
元组作为属性。Pandas 检查此元组以确定 ufunc 是否对当前类型有效。
有关更多信息,请参见 NumPy 通用函数。
默认情况下,ExtensionArrays 是不可哈希的。不可变的子类可以重写此行为。
示例
请参见以下内容:
属性
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
测试
断言函数
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]) |
在使用未定义变量名时,由 query 或 eval 引发的异常。 |
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]) |
当使用未定义的变量名时,由 query 或 eval 引发的异常。 |
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_exact
、rtol
和 atol
中的任何一个,则对整数 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_exact
、rtol
和 atol
中的任何一个,则默认为整数 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_exact
、rtol
和atol
中的任何一个,则默认为整数数据类型为 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...