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

当我们使用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日

相关文章

  • 基于Python实现帕累托图的示例详解

    基于Python实现帕累托图的示例详解 什么是帕累托图 帕累托图(Pareto Chart)也叫帕累托分析法,是利用帕累托原理(二八法则)和梯度图的基础上绘制出的图形,又称二八图。它是管理质量控制和精益制造中的一种工具,目的是通过图形的形式使人们能够快速地了解哪些因素是最重要的。它可以在产品设计、质量改进、进度控制等方面获得广泛应用。帕累托图通常由两个轴组成…

    python 2023年6月13日
    00
  • 按标签名称或按索引位置在DataFrame中删除列

    删除列是数据分析中常用的操作之一,Pandas提供了按标签名称或按索引位置删除列的方法,下面是详细的攻略: 按标签名称删除列 按标签名称删除列可以通过DataFrame的drop方法实现,具体步骤如下: 确定要删除的列的标签名称是什么,例如我们要删除列名为col1的列; 使用drop方法删除列,其中参数labels传入一个列表,包含要删除的列标签名称,参数a…

    python-answer 2023年3月27日
    00
  • 在Pandas中根据行频对数据框进行排序

    在Pandas中,可以根据某一列或多列的值对数据框进行排序。不过有时候我们需要根据行频(行出现的次数)对数据框进行排序。这篇文章将详细介绍这个过程,并提供实例说明。 1. 读取数据 首先,我们需要读取一些数据,以便后面的操作。这里我们可以使用Pandas自带的dataframe,如下所示: import pandas as pd from collectio…

    python-answer 2023年3月27日
    00
  • Python模拟简易版淘宝客服机器人的示例代码

    接下来我会详细讲解如何实现一个Python模拟简易版淘宝客服机器人并提供两条示例说明。 准备工作 在开始实现之前需要准备以下材料: Python编程环境,可以使用Anaconda / PyCharm等工具。 需要安装第三方库chatterbot用于机器人的拟合训练和应答生成。 安装命令:pip install chatterbot 基础步骤 在准备好环境后,…

    python 2023年6月13日
    00
  • pandas时间序列之如何将int转换成datetime格式

    当我们使用pandas对时间序列数据进行分析时,常常需要将整型数据表示的时间转化为datetime格式,以实现更精确的数据分析。 这里提供一种将int转换为datetime的方法: 首先需要引入pandas库和datetime库: import pandas as pd from datetime import datetime 其次,我们需要定义一个转换函…

    python 2023年5月14日
    00
  • 在Python Pandas中检查数据框架是否包含无穷大

    要检查 Pandas 数据框中是否包含无穷大值,可以使用 Pandas 提供的 isinf() 和 isnan() 函数。 以下是示例代码: import numpy as np import pandas as pd # 创建数据框 data = pd.DataFrame({ ‘A’: [1, 2, np.inf, 4], ‘B’: [5, 6, 7, 8…

    python-answer 2023年3月27日
    00
  • 分享20个Pandas短小精悍的数据操作

    分享20个Pandas短小精悍的数据操作 在数据分析和处理领域,Pandas是一个非常常用的Python库,并且也是大多数公司数据科学家必知必会的技能之一。 本文将分享20个Pandas短小精悍的数据操作,从解析多重索引到筛选、排序、重构 DataFrame,以及文本操作和其他常见任务等。 解析多重索引 使用MultiIndex.get_level_valu…

    python 2023年5月14日
    00
  • python处理数据,存进hive表的方法

    Python处理数据并存储到Hive表中的方法主要有以下几个步骤: 连接Hive Hive是基于Hadoop的一个数据仓库工具,它可以将结构化数据文件映射为一张数据库表,并提供简单的sql查询功能。因此,在进行Python处理数据并存储到Hive表中之前,首先需要连接Hive。 可以使用pyhive库来连接Hive。以下是连接Hive的示例代码: from …

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部