def count(self, axis=<NUM_LIT:0>, level=None, numeric_only=False):
axis = self._get_axis_number(axis)<EOL>if level is not None:<EOL><INDENT>return self._count_level(level, axis=axis,<EOL>numeric_only=numeric_only)<EOL><DEDENT>if numeric_only:<EOL><INDENT>frame = self._get_numeric_data()<EOL><DEDENT>else:<EOL><INDENT>frame = self<EOL><DEDENT>if len(frame._get_axis(axis)) == <NUM_LIT:0>:<EOL><INDENT>result = Series(<NUM_LIT:0>, index=frame._get_agg_axis(axis))<EOL><DEDENT>else:<EOL><INDENT>if frame._is_mixed_type or frame._data.any_extension_types:<EOL><INDENT>result = notna(frame).sum(axis=axis)<EOL><DEDENT>else:<EOL><INDENT>series_counts = notna(frame).sum(axis=axis)<EOL>counts = series_counts.values<EOL>result = Series(counts, index=frame._get_agg_axis(axis))<EOL><DEDENT><DEDENT>return result.astype('<STR_LIT>')<EOL>
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