Pandas Tutorial Pandas References

Pandas DataFrame - count() function



The Pandas DataFrame count() function is used to count non-NA cells for each column or row. The values None, NaN, NaT, and optionally pandas.inf (depending on pandas.options.mode.use_inf_as_na) are considered NA.

Syntax

DataFrame.count(axis=0, level=None, 
                numeric_only=False)

Parameters

axis Optional. Specify {0 or 'index', 1 or 'columns'}. If 0 or 'index', counts are generated for each column. If 1 or 'columns', counts are generated for each row. Default: 0
level Optional. Specify level (int or str). If the axis is a MultiIndex (hierarchical), count along a particular level, collapsing into a DataFrame. A str specifies the level name.
numeric_only Optional. Specify True to include only float, int or boolean data. Default: False

Return Value

Returns a Series of count of non-NA/null entries for each column/row. If level is specified DataFrame is returned.

Example: using count() column-wise on whole DataFrame

In the example below, a DataFrame info is created. The count() function is used to get the count of non-NA values of each column.

import pandas as pd
import numpy as np

info = pd.DataFrame({
	"Person": ["John", "Mary", "Jo", "Sam"],
	"Age": [25, 24, 30, 28],
	"Bonus": ["10K", np.nan, "10K", "9K"]
})

print(info,"\n")
print(info.count())

The output of the above code will be:

  Person  Age Bonus
0   John   25   10K
1   Mary   24   NaN
2     Jo   30   10K
3    Sam   28    9K 

Person    4
Age       4
Bonus     3
dtype: int64

Example: using count() row-wise on whole DataFrame

To get the row-wise count, the axis parameter can be set to 1.

import pandas as pd
import numpy as np

info = pd.DataFrame({
	"Person": ["John", "Mary", "Jo", "Sam"],
	"Age": [25, 24, 30, 28],
	"Bonus": ["10K", np.nan, "10K", "9K"]
})

print(info,"\n")
print(info.count(axis=1))

The output of the above code will be:

  Person  Age Bonus
0   John   25   10K
1   Mary   24   NaN
2     Jo   30   10K
3    Sam   28    9K 

0    3
1    2
2    3
3    3
dtype: int64

Example: using count() on selected column

Instead of whole DataFrame, the count() function can be applied on selected columns. Consider the following example.

import pandas as pd
import numpy as np

info = pd.DataFrame({
	"Person": ["John", "Mary", "Jo", "Sam"],
	"Age": [25, 24, 30, 28],
	"Bonus": ["10K", np.nan, "10K", "9K"]
})

print(info)

#count on single column
print("\ncount on Person returns:")
print(info['Person'].count())

#count on multiple columns
print("\ncount on Person and Bonus returns:")
print(info[['Person', 'Bonus']].count())

The output of the above code will be:

  Person  Age Bonus
0   John   25   10K
1   Mary   24   NaN
2     Jo   30   10K
3    Sam   28    9K

count on Person returns:
4

count on Person and Bonus returns:
Person    4
Bonus     3
dtype: int64

Example: using count() with level parameter

The example below shows how to create one level of a MultiIndex.

import pandas as pd
import numpy as np

info = pd.DataFrame({
	"Person": ["John", "Mary", "Jo", "Sam"],
	"Age": [25, np.nan, 30, 28],
	"Bonus": ["10K", np.nan, "10K", "9K"]
})

print(info,"\n")

#count with level parameter
print(info.set_index(['Person', 'Bonus']).count(level='Person'))

The output of the above code will be:

  Person   Age Bonus
0   John  25.0   10K
1   Mary   NaN   NaN
2     Jo  30.0   10K
3    Sam  28.0    9K 

        Age
Person     
Jo        1
John      1
Mary      0
Sam       1

❮ Pandas DataFrame - Functions