如何加宽输出显示以查看 Pandas 数据框中的更多列?

pythonpandasserver side programmingprogramming

当我们在 Pandas 中处理大型数据集时,我们经常以表格格式查看和分析数据。处理包含大量列的宽数据框时,默认显示设置可能会截断或隐藏某些列,从而难以完全探索和理解数据。为了克服这一限制,我们可以加宽 Pandas 中的输出显示以确保所有列都可见。在本文中,我们将讨论各种方法和技巧来加宽输出显示以查看更多列。

默认显示设置

默认情况下,Pandas 会限制显示的列数,以使输出适合可用空间。此行为由 display.max_columns 选项控制,该选项决定要显示的最大列数。

方法 1:使用 pd.set_option 方法

pd.set_option 方法允许我们修改 Pandas 中的各种显示选项,包括要显示的列数。通过将 display.max_columns 选项设置为 None,Pandas 将显示 DataFrame 中的所有列。

语法

pd.set_option('display.max_columns', None)

此处,pd.set_option('display.max_columns', None) 用于修改 Pandas 中的显示选项,以确定要显示的最大列数。通过将其设置为 None,它允许显示 DataFrame 中的所有列而不会截断。

示例

在下面的示例中,我们使用 Pandas 库创建一个包含 10 列的 DataFrame df。这些列标记为"A"到"J",每列包含三个整数值的列表。然后,代码将 Pandas 选项 display.max_columns 设置为 None,这确保 DataFrame 中的所有列都将显示而不会截断。最后,打印 DataFrame df,显示所有列及其各自的值。

import pandas as pd

# 创建一个包含 10 列的 DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9],
        'D': [10, 11, 12],
        'E': [13, 14, 15],
        'F': [16, 17, 18],
        'G': [19, 20, 21],
        'H': [22, 23, 24],
        'I': [25, 26, 27],
        'J': [28, 29, 30]}
df = pd.DataFrame(data)

# 设置选项以显示所有列
pd.set_option('display.max_columns', None)

print(df)

输出

    A  B  C   D   E     F   G     H   I     J
0  1  4  7  10  13  16  19  22  25  28
1  2  5  8  11  14  17  20  23  26  29
2  3  6  9  12  15  18  21  24  27  30

方法二:修改display.max_columns选项

我们可以使用pd.options.display属性直接修改display.max_columns选项,将其设置为None,可以达到和上一种方法一样的效果。

语法

pd.options.display.max_columns = None

这里,pd.options.display.max_columns = None用于在Pandas中直接修改display.max_columns选项,将其设置为None,DataFrame中的所有列都将显示而不会被截断。

示例

在下面的示例中,我们使用Pandas库创建一个包含10列的DataFrame df。列标记为"A"到"J",每列包含三个整数值的列表。此代码未使用 pd.set_option 方法,而是通过将 None 分配给 pd.options.display.max_columns 来直接修改 display.max_columns 选项。这可确保 DataFrame 中的所有列都将显示而不会被截断。最后,打印 DataFrame df,显示所有列及其各自的值。

import pandas as pd

# Create a DataFrame with 10 columns
data = {'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9],
        'D': [10, 11, 12],
        'E': [13, 14, 15],
        'F': [16, 17, 18],
        'G': [19, 20, 21],
        'H': [22, 23, 24],
        'I': [25, 26, 27],
        'J': [28, 29, 30]}
df = pd.DataFrame(data)

# 修改 display.max_columns 选项
pd.options.display.max_columns = None

print(df)

输出

     A  B  C   D   E   F    G    H    I     J
0  1  4  7  10  13  16  19  22  25  28
1  2  5  8  11  14  17  20  23  26  29
2  3  6  9  12  15  18  21  24  27  30

方法 3:调整终端/控制台宽度

有时,终端或控制台窗口宽度可能会限制显示的列数。调整终端宽度是加宽输出显示的一个简单解决方案。通过增加宽度,可以容纳更多列而不会截断。

示例

在下面的示例中,我们导入 Pandas 库和 os 模块。然后,我们通过使用 os.environ['COLUMNS'] 将值"150"分配给"COLUMNS"环境变量,将终端宽度设置为 150 列。接下来,创建一个包含 15 列的 DataFrame df。列名表示为从 0 到 14 的数字字符串,每列包含相应列名的三个重复值的列表。最后,打印 DataFrame df,显示所有 15 列及其值。

import pandas as pd
import os

# 将终端宽度设置为 150 列
os.environ['COLUMNS'] = '150'

# 创建一个有 15 列的 DataFrame
data = {str(i): [i] * 3 for i in range(15)}
df = pd.DataFrame(data)

print(df)

输出

  0  1  2  3  4  5  6  7  8  9  10  11  12  13  14
0  0  1  2  3  4  5  6  7  8  9  10  11  12  13  14
1  0  1  2  3  4  5  6  7  8  9  10  11  12  13  14
2  0  1  2  3  4  5  6  7  8  9  10  11  12  13  14

结论

在本文中,我们讨论了如何使用各种方法加宽输出显示以查看 Pandas Dataframe 中的更多列。我们讨论了使用 pd.set_option 方法并修改 display.max_columns 选项以显示所有列。此外,我们还强调了调整终端/控制台宽度以适应更宽的显示的重要性。


相关文章