美文网首页
11 Pandas的axis参数怎么理解

11 Pandas的axis参数怎么理解

作者: Viterbi | 来源:发表于2022-11-06 10:57 被阅读0次

11 Pandas的axis参数怎么理解?

  • axis=0或者"index":
    • 如果是单行操作,就指的是某一行
    • 如果是聚合操作,指的是跨行cross rows
  • axis=1或者"columns":
    • 如果是单列操作,就指的是某一列
    • 如果是聚合操作,指的是跨列cross columns

按哪个axis,就是这个axis要动起来(类似被for遍历),其它的axis保持不动

pandas 底层使用numpy,所以对pandas操作,同时操作一列或者一行效率会很高;

import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.arange(12).reshape(3,4),
    columns=['A', 'B', 'C', 'D']
)

df
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11

1、单列drop,就是删除某一列

# 代表的就是删除某列
df.drop("A", axis=1)
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
B C D
0 1 2 3
1 5 6 7
2 9 10 11

2、单行drop,就是删除某一行

df
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
# 代表的就是删除某行
df.drop(1, axis=0)
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
A B C D
0 0 1 2 3
2 8 9 10 11

3、按axis=0/index执行mean聚合操作

反直觉:输出的不是每行的结果,而是每列的结果

df
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
# axis=0 or axis=index
df.mean(axis=0)


    A    4.0
    B    5.0
    C    6.0
    D    7.0
    dtype: float64

指定了按哪个axis,就是这个axis要动起来(类似被for遍历),其它的axis保持不动

4、按axis=1/columns执行mean聚合操作

反直觉:输出的不是每行的结果,而是每列的结果

df
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
# axis=1 or axis=columns
df.mean(axis=1)




    0    1.5
    1    5.5
    2    9.5
    dtype: float64

指定了按哪个axis,就是这个axis要动起来(类似被for遍历),其它的axis保持不动

5、再次举例,加深理解

def get_sum_value(x):
    return x["A"] + x["B"] + x["C"] + x["D"]

df["sum_value"] = df.apply(get_sum_value, axis=1)

df
.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>
A B C D sum_value
0 0 1 2 3 6
1 4 5 6 7 22
2 8 9 10 11 38

指定了按哪个axis,就是这个axis要动起来(类似被for遍历),其它的axis保持不动

本文使用 文章同步助手 同步

相关文章

  • 11 Pandas的axis参数怎么理解

    11 Pandas的axis参数怎么理解? axis=0或者"index":如果是单行操作,就指的是某一行如果是聚...

  • 如何理解pandas中axis参数

    背景 在pandas中DataFrame乘法运算时遇到了坑,df.mul(series, axis=0),原意是想...

  • pandas的axis理解

    python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码: 如果我们调...

  • Pandas常见困惑问题汇总

    asix参数含义 原文请见:Python Pandas与Numpy中axis参数的二义性从例子入手: df.mea...

  • [Py010] 理解axis

    pandas很多函数里面都有axis参数,大部分默认为axis=0 经常被搞得晕头转向…… 瞅了一个小时,大概理清...

  • pandas中axis参数含义

    前端 在pandas中axis的默认值是0, axis=0表示沿着行方向指向执行(pandas中的index),a...

  • 【转】Python Pandas与Numpy中axis参数的理解

    Stackoverflow.com是程序员的好去处,本公众号将以pandas为主题,开始一个系列,争取做到每周一篇...

  • pandas中轴axis的问题理解

    在学习删除方法drop时,碰到了,也突然想明白了,轴是什么意思。 引入: 可已注意到的是,在上方使用drop时,删...

  • pandas库

    import pandas as pd import numpy as np #pandas中axis=0表示in...

  • 笔记:Python之Pandas的使用技巧

    Pandas的使用技巧相关知识点总结 一、数学计算与统计基础 (1)基本参数axis和skipna 输出结果: (...

网友评论

      本文标题:11 Pandas的axis参数怎么理解

      本文链接:https://www.haomeiwen.com/subject/gbcxtdtx.html