📜  如何在Python打印整个 Pandas DataFrame?

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

如何在Python打印整个 Pandas DataFrame?

数据可视化是一种技术,用于使用图形、图表、地图等视觉线索提供数据洞察力。这很有用,因为它有助于直观、轻松地理解大量数据,从而做出更好的决策。当我们使用大量打印数据集时,它会被截断。 在本文中,我们将了解如何在不截断的情况下打印整个 Pandas Dataframe 或 Series。

默认情况下,如果长度超过默认长度,则不打印完整的数据框,输出将被截断,如下所示:

Python3
import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
# Loading irirs dataset
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
display(df)


Python3
import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
 
# Convert the whole dataframe as a string and display
display(df.to_string())


Python3
import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
 
# The scope of these changes made to
# pandas settings are local to with statement.
with pd.option_context('display.max_rows', None,
                       'display.max_columns', None,
                       'display.precision', 3,
                       ):
    print(df)


Python3
import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
 
# Permanently changes the pandas settings
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', -1)
 
# All dataframes hereafter reflect these changes.
display(df)
 
print('**RESET_OPTIONS**')
 
# Resets the options
pd.reset_option('all')
display(df)


Python3
import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns=data.feature_names)
 
# Converts the dataframe into str object with formatting
print(df.to_markdown())


输出:



4 种方法可以打印整个 Pandas Dataframe:

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

方法一:使用 to_string()

虽然这种方法最简单,但对于非常庞大的数据集(以百万计)并不可取,因为它将整个数据帧转换为字符串对象,但对于大小为数千的数据帧非常有效。

代码:

蟒蛇3

import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
 
# Convert the whole dataframe as a string and display
display(df.to_string())

输出:

方法 2:使用 pd.option_context()

Pandas 允许通过option_context()方法和set_option()方法更改设置。这两种方法都相同,但有一个区别,后者是永久更改设置,而前者仅在上下文管理器范围内执行此操作。

代码:

蟒蛇3

import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
 
# The scope of these changes made to
# pandas settings are local to with statement.
with pd.option_context('display.max_rows', None,
                       'display.max_columns', None,
                       'display.precision', 3,
                       ):
    print(df)

输出:

解释:

上面的代码使用了某些选项参数,例如' display.max_rows '它的默认值是 10 & 如果数据框有超过 10 行它会截断它,我们正在做的是将它的值设置为 None 即显示所有行现在。同样,“ display.max_columns ”的默认值为 10,我们也将其设置为 None。

展示。 precision = 3 表示小数点后最多显示 3 个值,此处所有值都有 1 个值,因此不影响此示例。

方法 3:使用 pd.set_option()

此方法类似于 pd.option_context() 方法并采用与方法 2 中讨论的相同的参数,但与 pd.option_context() 不同的是,它的范围和影响是对整个脚本的,即所有数据框设置都被永久更改

要显式重置值,必须使用pd.reset_option('all')方法来恢复更改。

代码:



蟒蛇3

import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns = data.feature_names)
 
# Permanently changes the pandas settings
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', -1)
 
# All dataframes hereafter reflect these changes.
display(df)
 
print('**RESET_OPTIONS**')
 
# Resets the options
pd.reset_option('all')
display(df)

输出:

方法 4:使用 to_markdown()

此方法类似于 to_string() 方法,因为它还将数据框转换为字符串对象,并为其添加样式和格式。

代码:

蟒蛇3

import numpy as np
from sklearn.datasets import load_iris
import pandas as pd
 
data = load_iris()
df = pd.DataFrame(data.data,
                  columns=data.feature_names)
 
# Converts the dataframe into str object with formatting
print(df.to_markdown())

输出: