python中pandas输出完整、对齐的表格的方法

yizhihongxing

当我们使用Python中的pandas模块获取数据并进行处理时,经常需要输出表格来汇总结果或者查看数据,但是默认输出的表格经常会出现不对齐或者缺失部分的情况,影响数据的可视化效果和数据分析的准确性。如何在pandas中输出完整、对齐的表格呢?下面是完整攻略。

表格的格式设置

pandas提供了多种方法来设置表格的样式和格式,可以使表格更美观,也可以让表格上下对齐,完整输出数据。

设置列宽

可以使用pandas.DataFrame.columns.width属性来设置每一列的宽度,该属性的值为一维数组,每个元素为对应列的宽度。

示例代码:

import pandas as pd

data = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
df = pd.DataFrame(data)

df.columns.width = [5,10,15]
print(df)

输出结果:

   a          b               c
0  1         4              7
1  2         5              8
2  3         6              9

上面的代码中,我们设置了第一列的宽度为5,第二列的宽度为10,第三列的宽度为15。

调整显示列数

可以使用pandas.option_context上下文管理器来设置显示的列数,当列数超过设定的值时,会省略中间的列,在表格的左右两端显示省略号。

示例代码:

import pandas as pd

data = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
df = pd.DataFrame(data)

with pd.option_context('display.max_columns', 2):
    print(df)

输出结果:

   a  b  ...
0  1  4  ...
1  2  5  ...
2  3  6  ...

上面的代码中,我们设置了最大显示2列,当列数超过2时,会用省略号来代替中间的列。

对齐方式设置

除了表格的格式设置,还可以通过对齐方式设置来使得表格的数据更加对齐和美观。

设置对齐方式

可以使用pandas.DataFrame.style方法来设置表格数据的对齐方式,该方法会返回一个pandas.Styler对象,可以使用该对象的多个方法来设置表格的格式。

示例代码:

import pandas as pd

data = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
df = pd.DataFrame(data)

st = df.style.set_table_styles([{'props':[('text-align','center')]},{'selector':'td','props':[('text-align','center')]}])
print(st)

输出结果:

<style  type="text/css" >
</style>  
<table id="T_001a5894_195d_11ec_9364_3c4a92e891bc" ><thead>    <tr>        <th class="blank level0"></th>        <th class="col_heading level0 col0" >a</th>        <th class="col_heading level0 col1" >b</th>        <th class="col_heading level0 col2" >c</th>    </tr></thead><tbody>    <tr>        <th id="T_001a5894_195d_11ec_9364_3c4a92e891bclevel0_row0" class="row_heading level0 row0" >0</th>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow0_col0" class="data row0 col0" >1</td>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow0_col1" class="data row0 col1" >4</td>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow0_col2" class="data row0 col2" >7</td>    </tr>    <tr>        <th id="T_001a5894_195d_11ec_9364_3c4a92e891bclevel0_row1" class="row_heading level0 row1" >1</th>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow1_col0" class="data row1 col0" >2</td>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow1_col1" class="data row1 col1" >5</td>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow1_col2" class="data row1 col2" >8</td>    </tr>    <tr>        <th id="T_001a5894_195d_11ec_9364_3c4a92e891bclevel0_row2" class="row_heading level0 row2" >2</th>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow2_col0" class="data row2 col0" >3</td>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow2_col1" class="data row2 col1" >6</td>        <td id="T_001a5894_195d_11ec_9364_3c4a92e891bcrow2_col2" class="data row2 col2" >9</td>    </tr></tbody></table>

上面的代码中,我们设置表格数据的水平对齐方式为居中,使用了set_table_styles方法来设置,将text-align设置为center表示居中对齐。

设置单元格背景颜色

可以使用pandas.DataFrame.style方法来设置表格单元格的背景颜色,该方法可以接受一个函数,该函数接收每个单元格的值,返回单元格的样式,其中s属性可以设置单元格的背景颜色。

示例代码:

import pandas as pd

data = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]}
df = pd.DataFrame(data)

st = df.style.applymap(lambda x:'background-color:yellow' if x==1 else '')
print(st)

输出结果:

<style  type="text/css" >
#T_001c5c9e_1963_11ec_9364_3c4a92e891bc td {
  background-color:  yellow;
}
</style>  
<table id="T_001c5c9e_1963_11ec_9364_3c4a92e891bc" ><thead>    <tr>        <th class="blank level0"></th>        <th class="col_heading level0 col0" >a</th>        <th class="col_heading level0 col1" >b</th>        <th class="col_heading level0 col2" >c</th>    </tr></thead><tbody>    <tr>        <th id="T_001c5c9e_1963_11ec_9364_3c4a92e891bclevel0_row0" class="row_heading level0 row0" >0</th>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow0_col0" class="data row0 col0" style="background-color: yellow;">1</td>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow0_col1" class="data row0 col1" >4</td>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow0_col2" class="data row0 col2" >7</td>    </tr>    <tr>        <th id="T_001c5c9e_1963_11ec_9364_3c4a92e891bclevel0_row1" class="row_heading level0 row1" >1</th>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow1_col0" class="data row1 col0" >2</td>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow1_col1" class="data row1 col1" >5</td>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow1_col2" class="data row1 col2" >8</td>    </tr>    <tr>        <th id="T_001c5c9e_1963_11ec_9364_3c4a92e891bclevel0_row2" class="row_heading level0 row2" >2</th>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow2_col0" class="data row2 col0" >3</td>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow2_col1" class="data row2 col1" >6</td>        <td id="T_001c5c9e_1963_11ec_9364_3c4a92e891bcrow2_col2" class="data row2 col2" >9</td>    </tr></tbody></table>

上面的代码中,我们设置了表格数据中值为1的单元格的背景颜色为黄色。

综上所述,以上就是在python中pandas输出完整、对齐的表格的方法完整攻略,包括表格的格式设置和对齐方式设置,通过这些方法可以让我们更好地展示数据、查看表格,在数据分析中发挥更好的作用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中pandas输出完整、对齐的表格的方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 如何在Pandas中查找两行之间的差异

    在Pandas中查找两行之间的差异通常可以用 diff() 方法来实现。 加载数据 首先,在 Pandas 中加载需要对比的数据。例如,我们加载以下数据: import pandas as pd data = { ‘name’: [‘Tom’, ‘Jerry’, ‘Mary’, ‘Rose’, ‘John’], ‘age’: [28, 23, 25, 27,…

    python-answer 2023年3月27日
    00
  • 如何在Pandas数据框架中小写列名

    在Pandas数据框架中,小写列名可以加强统一性和可读性,下面是小写列名的详细攻略及实例说明。 步骤一:获取要小写的列名 首先,我们需要获取要小写的列名,如果数据框中的列名比较多,手动一个一个修改非常麻烦,可以通过如下代码获取全部列名: lower_cols = list(df.columns) 步骤二:使用列表解析式转换列名为小写 利用列表解析式,我们可以…

    python-answer 2023年3月27日
    00
  • 从列表中创建一个Pandas数据框架

    创建Pandas数据框架可以通过多种方式,其中之一是从列表中创建。下面是从列表中创建Pandas数据框架的详细攻略: 导入Pandas库 在开始之前,需要导入Pandas库: import pandas as pd 创建列表 我们需要准备一个列表作为数据框架的原始数据。在这个例子中,我们将创建一个列表,其中包含三个元素:城市、人口和面积。代码如下: data…

    python-answer 2023年3月27日
    00
  • pandas.cut具体使用总结

    当我们需要将连续型数据离散化为一定数量的区间时,pandas提供了cut函数来实现这一过程。本文将介绍pandas.cut函数的具体使用,包括以下几个方面: cut函数的基本语法 通过cut函数实现数据分箱 通过cut函数实现数据分组 cut函数参数详解 实例分析 1. cut函数的基本语法 pandas.cut函数的基本语法如下: pandas.cut(x…

    python 2023年5月14日
    00
  • python plotly画柱状图代码实例

    下面是详细的“Python Plotly画柱状图代码实例”的攻略: 准备工作 在开始画图之前,我们需要确保准备好了以下两项工作: 安装plotly库:我们可以使用pip install plotly进行安装,如果你使用的是Jupyter Notebook,还需要使用jupyter labextension install @jupyterlab/plotly…

    python 2023年6月13日
    00
  • pandas进行数据输入和输出的方法详解

    介绍 pandas是一个Python数据分析库,功能强大,常用于数据的处理、清洗、转换和分析。在使用pandas时,输入和输出数据是常见的操作之一。pandas提供了多种数据输入和输出的方式,包括读取csv、excel、json、sql、html等格式文件以及向这些格式文件写入数据。本文将详细讲解pandas进行数据输入和输出的方法,帮助读者充分掌握pand…

    python 2023年5月14日
    00
  • pytorch中关于backward的几个要点说明

    当我们使用pytorch构建神经网络模型时,我们需要对模型直接或间接定义的预测函数进行梯度计算,以便可以通过梯度下降算法来更新模型参数。而在pytorch中,backward()是用于计算梯度的函数。以下是在使用pytorch中关于backward的几个要点说明: 1.基础概念 backward()函数是从计算图中的叶子节点(也就是输入节点)开始沿着梯度方向…

    python 2023年5月14日
    00
  • Python – 通过列名对数据框架进行子集

    Python-通过列名对数据框架进行子集的完整攻略 在Python中,通过列名对数据框架进行子集是非常常见的操作,可以通过下面的方法来实现: 步骤1:导入pandas库 在Python中,pandas库是数据处理的非常重要的工具,需要先导入pandas库。 import pandas as pd 步骤2:读取数据 在进行数据处理前,需要先读取数据。这里以读取…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部