[Python] Ambiguity in Pandas Dataframe / Numpy Array "axis" definition

Discussão em 'Python' iniciado por Stack, Dezembro 1, 2024.

  1. Stack

    Stack Membro Participativo

    I've been very confused about how python axes are defined, and whether they refer to a DataFrame's rows or columns. Consider the code below:

    >>> df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1", "col2", "col3", "col4"])
    >>> df
    col1 col2 col3 col4
    0 1 1 1 1
    1 2 2 2 2
    2 3 3 3 3


    So if we call df.mean(axis=1), we'll get a mean across the rows:

    >>> df.mean(axis=1)
    0 1
    1 2
    2 3


    However, if we call df.drop(name, axis=1), we actually drop a column, not a row:

    >>> df.drop("col4", axis=1)
    col1 col2 col3
    0 1 1 1
    1 2 2 2
    2 3 3 3


    Can someone help me understand what is meant by an "axis" in pandas/numpy/scipy?

    A side note, DataFrame.mean just might be defined wrong. It says in the documentation for DataFrame.mean that axis=1 is supposed to mean a mean over the columns, not the rows...

    Continue reading...

Compartilhe esta Página