计算Pandas数据框架行数的6种方法

1,169 阅读3分钟

想学习如何计算Pandas数据框的行数吗?在这篇文章中,我们将学习如何用简单的方法做到这一点。Pandas是一个Python库,用于轻松操作表格和数据框中的数据。Pandas有很多系统函数,在这篇文章中,我们将特别关注那些帮助我们得出数据框行数的函数。

首先,让我们从创建一个数据框架开始。

# Import pandas library
import pandas as pd

# initialize the variable data with your items
cars = [['Honda', 6], ['Hyundai', 5], ['Tata', 5.5]]

# Create the pandas DataFrame
cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# print dataframe.
print(cars)

寻找潘达斯数据框架行数的方法

主要有四个pandas函数来查找数据框架的行数。我们将讨论这四个函数--它们的属性、语法、函数调用和时间的复杂性。

方法1:len(df.index)

代码

import pandas as pd

cars = [['Honda', 6], ['Hyundai', 5], ['Tata', 5.5]]

cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# counting rows
print(len(cars_df.index))

上面的代码将返回数据框中存在的行数,(在上面的例子中是3)。len(df.index)这个语法用于大型数据库,因为它只返回数据框的行数,而且它是返回数据框内元素的最快函数。虽然在属性上有很多相似之处,但它比len(df)(方法4)要快,因为它少了一个函数调用的执行。

方法2:df.shape[]

代码

import pandas as pd

cars = [['Honda', 6], ['Hyundai', 5], ['Tata', 5.5]]

cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# counting rows
print(cars_df.shape[0])

这个函数用于计算数据框中的行和列,语法df.shape同时返回元组的行和列计数。

[]括号用来表示索引,即df.shape[0]返回行数,df.shape[1]返回列数。在时间比较上,它比(df.index)要慢。'timeit'测试显示,它比len(df.index)慢3倍之多。

方法3:df[df.column[0]].count()

代码

import pandas as pd

cars = [['Honda', 6], ['Hyundai', 5], ['Tata', 5.5]]

cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# counting rows
print(cars_df[cars_df.columns[0]].count())

这个pandas函数对数据框第一列的所有非空行进行计数。时间的复杂性随着行数的增加而增加。

方法4:len(df)

代码

import pandas as pd

cars = [['Honda', 6], ['Hyundai', 5], ['Tata', 5.5]]

cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# counting rows
print(len(cars_df))

这个函数计算索引的长度,与函数len(df.index)相似,但速度稍慢。如果我们精确到每个循环所花费的时间,我们发现len(df)比len(df.index)慢了大约200ns。这个差异看起来很小,但在使用大数据框架时,会造成很大的时间差异。

方法5: df.count()

这个pandas函数给出了整个表的计数,类似于df.shape[]函数,但在可读性上有一些变化。这个函数不能被调用来返回单列的行数,相反,它以平板结构返回结果。

代码

import pandas as pd

cars = [['Honda', 6], ['Hyundai', 5], ['Tata', 5.5]]

cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# counting rows and columns
print(cars_df.count())

方法6:df.[cols].count()

如果我们想要我们的数据框架的计数,特别是以列为单位的计数,那么我们必须对df.count()的语法做一些改变。df.[col].count() 语法是我们需要向编译器提及的。这个语法对一行中的元素进行计数,具体到列。

这种语法在处理.csv文件时相当有帮助,因为其中有大量的列。这个语法还给出了一个列中空行的数量,这使得它更加可行。

代码

# Import pandas library
import numpy as np
import pandas as pd

# initialize the variable data with your items
cars = [['Honda', 6], [np.nan, np.nan], ['Hyundai', 5], ['Tata', 5.5]]

# Create the pandas DataFrame
cars_df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

# counting column-specific row count
print(cars_df['Brand'].count())

结论

在这篇文章中,我们已经了解了不同类型的语法和模块来计算数据框架的行数。我们学习了如何在程序中实现这些语法,并观察了它们的时间复杂性。为了让你更好地了解不同的程序和语法可以得到什么样的结果,还提供了输出。

希望这篇文章能帮助你更好地理解数据框架和行数的概念。