📜  如何漂亮地打印整个 Pandas 系列或 DataFrame?

📅  最后修改于: 2022-05-13 01:55:32.500000             🧑  作者: Mango

如何漂亮地打印整个 Pandas 系列或 DataFrame?

在本文中,我们将看到如何漂亮地打印整个熊猫系列/数据框。

有两种方法可以漂亮地打印整个熊猫系列/数据框:

  • 使用 pd.set_options() 方法
  • 使用 pd.option_context() 方法

方法一:使用 pd.set_options() 方法

设置指定选项的值。有各种漂亮的打印选项可用于此方法。

例如 display.max_columns、display.max_colwidth、display.max_rows、display.colheader_justify、display.precision 等。 下面讨论一些漂亮的打印选项:

  • display.max_columns: pandas 应该打印的最大列数。如果 None 作为参数提供,则打印所有列。
  • display.max_rows :pandas 应该打印的最大行数。如果 None 作为参数提供,则打印所有行。
  • display.colheader_justify :控制列标题的对齐方式
  • display.precision :以小数点后的位数表示的浮点输出精度,用于常规格式和科学记数法。
  • display.date_dayfirst :当为 True 时,首先打印和解析日期,例如 20/12/2020
  • display.date_yearfirst :当为 True 时,首先打印和解析日期,例如 2020/12/20
  • display.width :以字符为单位的显示宽度。如果设置为 None,pandas 将正确自动检测宽度。

下面是实现:

Python3
import pandas as pd
  
# Create a dataframe
df = pd.DataFrame({
  'Product_id': ['ABC', 'DEF', 'GHI', 'JKL', 
                 'MNO', 'PQR', 'STU', 'VWX'],
    
  'Stall_no': [37, 38, 9, 50, 7, 23, 33, 4],
  'Grade': [1, 0, 0, 2, 0, 1, 3, 0],
    
  'Category': ['Fashion', 'Education', 'Technology', 
               'Fashion', 'Education', 'Technology', 
               'Fashion', 'Education'],
    
  'Demand': [10, 12, 14, 15, 13, 20, 10, 15],
  'charges1': [376, 397, 250, 144, 211, 633, 263, 104],
  'charges2': [11, 12, 9, 13, 4, 6, 13, 15],
  'Max_Price': [4713, 10352, 7309, 20814, 9261, 
                6104, 5257, 5921],
    
  'Selling_price': [4185.9477, 9271.490256, 6785.701362, 
                    13028.91782, 906.553935, 5631.247872, 
                    3874.264992, 4820.943]})
display(df)


Python3
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)
pd.set_option('display.colheader_justify', 'center')
pd.set_option('display.precision', 2)
display(df)


Python3
with pd.option_context('display.max_rows', 5,
                       'display.max_columns', None,
                       'display.width', 1000,
                       'display.precision', 3,
                       'display.colheader_justify', 'left'):
    display(df)


输出:

我们将在 df 上面使用 set_options() 方法的一些选项来查看一行中的所有行、所有列、所有列,列标题居中对齐,并将每个浮点值的小数点后的位数四舍五入为 2。

蟒蛇3

pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)
pd.set_option('display.colheader_justify', 'center')
pd.set_option('display.precision', 2)
display(df)

输出:

通过 pd.set_options() 方法设置后,所有下一个数据帧打印命令都会使用相同的设置。

方法二:使用 pd.option_context()

pd.set_option()方法为显示数据框提供永久设置。 pd.option_context() 临时设置 with 语句上下文中的选项。 pd.option_context() 是上述 pd.set_options() 的单行代码,具有临时作用。

以下代码将上述 df 打印为 5 行,所有列,一行中的所有列都带有左对齐的列标题,并将每个浮点值的小数点后的位数四舍五入为 3。

蟒蛇3

with pd.option_context('display.max_rows', 5,
                       'display.max_columns', None,
                       'display.width', 1000,
                       'display.precision', 3,
                       'display.colheader_justify', 'left'):
    display(df)

输出: