如何在Python中打印整个Pandas DataFrame

如何在Python中打印整个Pandas DataFrame

数据可视化是一种技术,它使用视觉线索,如图形、图表、地图和其他许多东西来提供数据的洞察力。这很有用,因为它有助于直观和容易地理解大量的数据,从而做出更好的决定。当我们使用一个打印的大量数据集时,那么它就会被截断。 在这篇文章中,我们将看到如何在不截断的情况下打印整个pandas数据框架或系列。

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

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)
Python

输出:

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

4种方法来打印整个pandas数据框架:

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

方法1:使用to_string()

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

语法:

DataFrame.to_string(buf=None, columns=None, col_space=None, header=True, index=True, na_rep=NaN, formatters=None, float_format=None, index_names=True, justify=None, max_rows=None, max_cols=None, show_dimensions=False, decimal=., line_width=None)
Python

代码:

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())
Python

输出:

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

方法2:使用pd.option_context()

Pandas允许通过option_context()方法和set_option()方法改变设置。这两个方法都是相同的,但有一点不同的是,后一个方法是永久性地改变设置,而前一个方法只在上下文管理器范围内进行。

语法 : pandas.option_context(*args)

代码:

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)
Python

输出:

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

解释:

上面的代码使用了某些选项参数,比如’display.max_rows‘,它的默认值是10,如果数据帧超过10行,它就会被截断,我们要做的是把它的值变成None,即现在显示所有的行。同样,’display.max_columns‘的默认值是10,我们也将它设置为None。

display. precision = 3表示小数点后显示3个值,这里所有的值都是1个值,因此它不影响这个例子。

方法3:使用pd.set_option()

这个方法与pd.option_context()方法类似,并且接受与方法2相同的参数,但与pd.option_context()不同的是,它的_范围和效果是针对整个脚本的,即所有的数据帧设置都被永久地改变。

要明确地重置数值,必须使用pd.reset_option(‘all’)方法来恢复变化。

语法 : pandas.set_option(pat, value)

代码:

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)
Python

输出:

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

方法4:使用to_markdown()

这个方法与to_string()方法类似,因为它也是将数据框转换为字符串对象,并为其添加样式和格式。

语法 : DataFrame.to_markdown(buf=None, mode=’wt’, index=True,, **kwargs)

代码:

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())
Python

输出:

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册