# pandas.DataFrame.count

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

  Count non-NA cells for each column or row.

  The values None, NaN, NaT, and optionally numpy.inf (depending on pandas.options.mode.use_inf_as_na) are considered NA.

  Parameters:

  axis : {0 or ‘index’, 1 or ‘columns’}, default 0

  > If 0 or ‘index’ counts are generated for each column. If 1 or ‘columns’ counts are generated for each row.

  level : int or str, optional

  > If the axis is a MultiIndex (hierarchical), count along a particular level, collapsing into a DataFrame. A str specifies the level name.

  numeric_only : bool, default False

  > Include only float, int or boolean data.

  Returns:

  Series or DataFrame

  > For each column/row the number of non-NA/null entries. If level is specified returns a DataFrame.

  See also

  `Series.count`
    Number of non-NA elements in a Series.
  `DataFrame.shape`
    Number of DataFrame rows and columns (including NA elements).
  `DataFrame.isna`
    Boolean same-sized DataFrame showing places of NA elements.

  Examples

  Constructing DataFrame from a dictionary:

      >>> df = pd.DataFrame({"Person":
      ...                    ["John", "Myla", "Lewis", "John", "Myla"],
      ...                    "Age": [24., np.nan, 21., 33, 26],
      ...                    "Single": [False, True, True, True, False]})
      >>> df
         Person   Age  Single
      0    John  24.0   False
      1    Myla   NaN    True
      2   Lewis  21.0    True
      3    John  33.0    True
      4    Myla  26.0   False

  Notice the uncounted NA values:

      >>> df.count()
      Person    5
      Age       4
      Single    5
      dtype: int64

  Counts for each row:

      >>> df.count(axis='columns')
      0    3
      1    2
      2    3
      3    3
      4    3
      dtype: int64

  Counts for one level of a MultiIndex:

      >>> df.set_index(["Person", "Single"]).count(level="Person")
              Age
      Person
      John      2
      Lewis     1
      Myla      1

Scroll To Top