如何使用Pandas显示数据框架的所有行
在这篇文章中,我们将讨论如何在Python中使用Pandas显示数据框架的所有行。
当你试图打印一个超过预定义行和列数的大数据框架时,结果将被截断。请看下面的例子,以便更好地理解。
# importing numpy library
import pandas as pd
# importing diabetes dataset from sklearn
from sklearn.datasets import load_diabetes
# Loading diabetes dataset
data = load_diabetes()
# storing as data frame
dataframe = pd.DataFrame(data.data, columns=data.feature_names)
# printing data frame
print(dataframe)
输出:
在上面的输出中,你可以看到总的行数是442,但它只显示了10行。这是由于pandas库的默认设置是只显示10行(默认的行数可能会因系统不同而改变)。现在我们来看看如何使用pandas来显示数据框中的所有行。
方法1:使用to_string()
这种方法是显示数据框中所有行的最简单的方法,但对于非常巨大的数据集(以百万计)来说,这种方法并不可取,因为它将整个数据框转换为一个字符串。虽然这种方法对于规模在几千人的数据集来说效果不错。
语法 :
DataFrame.to_string()
代码:
# Display all rows from data frame using pandas
# importing numpy library
import pandas as pd
# importing iris dataset from sklearn
from sklearn.datasets import load_iris
# Loading iris dataset
data = load_iris()
# storing as data frame
dataframe = pd.DataFrame(data.data,columns = data.feature_names)
# Convert entire data frame as string and print
print(dataframe.to_string())
输出:
在这里,在输出中,你可以看到它显示了数据框架的所有行。但是这种方法对于大的数据框架来说是不可取的,因为它把整个数据框架转换成了一个字符串,所以可能会出现内存错误。
方法2:使用set_option()
Pandas提供了一个操作系统来定制行为和显示。这个方法允许我们配置显示,以显示一个完整的数据框,而不是一个截断的数据框。pandas提供了一个函数set_option()来显示数据框的所有行。display.max_rows表示pandas在显示数据框的时候所要显示的最大行数。
max_rows的默认值是10。如果设置为’None’,那么它意味着数据框架的所有行。设置display.max_rows的值为None,并将其传递给set_option,这将显示数据框架中的所有行。
语法 :
pandas.set_option('display.max_rows', None)
代码:
# Display all rows from data frame using pandas
# importing numpy library
import pandas as pd
# importing iris dataset from sklearn
from sklearn.datasets import load_iris
# Loading iris dataset
data = load_iris()
# Default value of display.max_rows is 10 so at max
# 10 rows will be printed. Set it None to display
# all rows in the dataframe
pd.set_option('display.max_rows', None)
# storing the dataset as data frame
dataframe = pd.DataFrame(data.data,columns = data.feature_names)
# printing data frame
print(dataframe)
输出:
方法3:使用to_markdown()
这个方法将数据框转换为字符串对象,并为数据框添加样式和格式化。这与to_string()方法相同,但添加了样式和格式。to_markdown()将显示数据框中带有样式和格式的所有行。
语法 :
DataFrame.to_markdown()
代码:
# Display all rows from data frame using pandas
# importing numpy library
import pandas as pd
# importing iris dataset from sklearn
from sklearn.datasets import load_iris
# Loading iris dataset
data = load_iris()
# storing the dataset as data frame
dataframe = pd.DataFrame(data.data, columns=data.feature_names)
# Convert entire data frame as markdown and print
print(dataframe.to_markdown())
输出:
方法4:使用option_context()
这个方法与set_option()方法相同。两个方法都是一样的,唯一的区别是set_option()是永久性地改变设置,而option_context()只在其范围内进行。这个方法也使用display.max_rows作为参数,我们让它等于None来显示数据框的所有行。因此,在将display.max_rows的值设置为None并将其传递给option_context后,我们就可以看到数据框中的所有行。其语法与set_option()方法相同。
语法 :
with pandas.option_context('display.max_rows', None,):
print(dataframe)
代码:
# Display all rows from data frame using pandas
# importing numpy library
import pandas as pd
# importing iris dataset from sklearn
from sklearn.datasets import load_iris
# Loading iris dataset
data = load_iris()
# storing the dataset as data frame
dataframe = pd.DataFrame(data.data, columns=data.feature_names)
# The scope of these changes
# are local with systems to with statement.
with pd.option_context('display.max_rows', None,):
print(dataframe)
输出: