Pandas head():Python中Pandas DataFrame head()使用方法

2,063 阅读4分钟

Pandas DataFrame head() Method in Python

Python中的head()返回DataFrame或系列的前几行(默认为5行)。要使用 head()函数,请将.head()函数链接到DataFrame系列Pandas中。

Pandas head()

Pandas DataFrame head()方法返回DataFrame系列的前n行,其中n是用户输入值。**head()**函数是用来获取前n行的。它有助于快速测试你的对象中是否有正确的数据类型。对于n的负值,head()函数返回除最后n行以外的所有行,相当于df[:-n]。

语法

DataFrame.head(n=5)  (n=5 is default we can set any value)

参数

python中的head()方法只包含一个参数,即n,它是一个可选参数。通过设置它,我们可以确定我们想要从DataFrame中获得的行数。

返回值

head()函数从DataFrame中返回n条记录。

例子

写一个程序来展示head()的工作原理。

import pandas as pd
import numpy as np

data_set = pd.DataFrame({'Name': ['Rohit', 'Mohit', 'Shubh', 'Pranav', 'Shivam', 'Prince'],
                         'Class': ['10', '09', '11', '12', '05', '07']})
print(data_set.head(5))

输出

Name Class
0   Rohit    10
1   Mohit    09
2   Shubh    11
3  Pranav    12
4  Shivam    05

在这里我们可以看到,我们已经创建了一个DataFramedata_set,它保存了6个学生的名字和他们各自所在的班级的值。

假设我们只想提取前5名学生的数据,而不是所有的学生。当这个问题出现时,我们可以使用Pandas库中定义的head()方法来提取数据集的前n行。

写一个程序,当DataFrame由5列组成时,使用head()函数。

import pandas as pd
import numpy as np
data_frame = pd.DataFrame({'Name': ['Rohit', 'Mohit', 'Shubh', 'Pranav', 'Shivam', 'Prince'],
                           'Class': ['10', '09', '11', '12', '05', '07'], 'Roll no': ['25', '37', '48', '47', '46', '35'], 'Fav Subject': ['C++', 'Python', 'Kotlin', 'C', 'Java', 'C#'], 'Favourite Sports': ['Football', 'Basketball', 'Hockey', 'Cricket', 'Handball', 'Soccer']})
print("DataFrame::\n")
print(data_frame)
print("\n")
print("Top 3 students::")
print("\n")
print(data_frame.head(3))

输出

DataFrame::

     Name Class Roll no Fav Subject Favourite Sports
0   Rohit    10      25         C++         Football
1   Mohit    09      37      Python       Basketball
2   Shubh    11      48      Kotlin           Hockey
3  Pranav    12      47           C          Cricket
4  Shivam    05      46        Java         Handball
5  Prince    07      35          C#           Soccer

Top 3 students::

    Name Class Roll no Fav Subject Favourite Sports
0  Rohit    10      25         C++         Football
1  Mohit    09      37      Python       Basketball
2  Shubh    11      48      Kotlin           Hockey

这里我们可以看到DataFrame中有5列**,**在head函数的帮助下,我们显示了前3名学生的数据。

不向head()函数传递参数

如果你不向**DataFrame head()**函数传递任何参数,你将得到默认的前五行的回报。

import pandas as pd
import numpy as np

data_frame = pd.DataFrame({'Name': ['Rohit', 'Mohit', 'Shubh', 'Pranav', 'Shivam', 'Prince'],
                           'Class': ['10', '09', '11', '12', '05', '07'], 'Roll no': ['25', '37', '48', '47', '46', '35'], 'Fav Subject': ['C++', 'Python', 'Kotlin', 'C', 'Java', 'C#'], 'Favourite Sports': ['Football', 'Basketball', 'Hockey', 'Cricket', 'Handball', 'Soccer']})

print("DataFrame::\n")
print(data_frame)
print("\n")
print(data_frame.head())

输出

DataFrame::

     Name Class Roll no Fav Subject Favourite Sports
0   Rohit    10      25         C++         Football
1   Mohit    09      37      Python       Basketball
2   Shubh    11      48      Kotlin           Hockey
3  Pranav    12      47           C          Cricket
4  Shivam    05      46        Java         Handball
5  Prince    07      35          C#           Soccer


     Name Class Roll no Fav Subject Favourite Sports
0   Rohit    10      25         C++         Football
1   Mohit    09      37      Python       Basketball
2   Shubh    11      48      Kotlin           Hockey
3  Pranav    12      47           C          Cricket
4  Shivam    05      46        Java         Handball

向head()函数传递负数参数

让我们向head()函数传递负数参数,看看结果如何。

import pandas as pd
import numpy as np

data_frame = pd.DataFrame({'Name': ['Rohit', 'Mohit', 'Shubh', 'Pranav', 'Shivam', 'Prince'],
                           'Class': ['10', '09', '11', '12', '05', '07'], 'Roll no': ['25', '37', '48', '47', '46', '35'], 'Fav Subject': ['C++', 'Python', 'Kotlin', 'C', 'Java', 'C#'], 'Favourite Sports': ['Football', 'Basketball', 'Hockey', 'Cricket', 'Handball', 'Soccer']})

print("DataFrame::\n")
print(data_frame)
print("\n")
print(data_frame.head(-4))

输出结果

DataFrame::

     Name Class Roll no Fav Subject Favourite Sports
0   Rohit    10      25         C++         Football
1   Mohit    09      37      Python       Basketball
2   Shubh    11      48      Kotlin           Hockey
3  Pranav    12      47           C          Cricket
4  Shivam    05      46        Java         Handball
5  Prince    07      35          C#           Soccer


    Name Class Roll no Fav Subject Favourite Sports
0  Rohit    10      25         C++         Football
1  Mohit    09      37      Python       Basketball

从输出结果中,你可以看到它只返回前两行。这意味着它不会计算最后四行。所以,如果你传递了**-5,就**不会计算最后五行,而是返回第一行。

Pandas系列的head()

**Pandas系列的head()**方法在系列中被调用,自定义输入n参数以返回系列的前n行。

import pandas as pd
import numpy as np

df = pd.DataFrame({'Name': ['Rohit', 'Mohit', 'Shubh', 'Pranav', 'Shivam', 'Prince'],
                   'Class': ['10', '09', '11', '12', '05', '07'],
                   'Roll no': ['25', '37', '48', '47', '46', '35'],
                   'Fav Subject': ['C++', 'Python', 'Kotlin', 'C', 'Java', 'C#'],
                   'Favourite Sports': ['Football', 'Basketball', 'Hockey', 'Cricket', 'Handball', 'Soccer']})

series = df['Favourite Sports']
top5 = series.head()
print(top5)

输出

0      Football
1    Basketball
2        Hockey
3       Cricket
4      Handball
Name: Favourite Sports, dtype: object

在这个例子中,我们对系列调用了head()函数,并返回系列的前五个元素。所以head()函数的工作原理与SeriesDataFrame相同。

结论

Pandas DataFrame head()函数在我们有大量的数据而我们想看一看这些数据的时候是很方便的。有时,我们想检查哪些是不同的列,它的数据类型是什么,以及我们如何执行不同的操作。它是DataFrame中一个方便的函数。