理解pandas中的Axis

理解pandas中的Axis

概念

  • 轴概念与广播机制有关,是操作对象(标量或矢量)按照标签(定义位置)自动匹配、对齐、延展(拓展)的方向
  • 操作对象在指定轴向上(排列),在指定轴上搜索标签(位置),并按标签(位置)自动对齐操作对象
  • axis=0表示纵轴,列矢量、行标签方向
  • axis=1表示横轴,行矢量、列标签方向
    在这里插入图片描述

实例1

df = DataFrame(np.arange(20).reshape((5, 4)),
                  index = ['a', 'b', 'c', 'd','e'],
                  columns = ['A', 'B', 'C', 'D'])
print(df)

结果:

    A   B   C   D
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15
e  16  17  18  19

mean方法

print(df.mean(axis=1))	# 行矢量方向;(行矢量)元素沿行矢量方向按该方向标签(列标签)对齐

a     1.5
b     5.5
c     9.5
d    13.5
e    17.5
dtype: float64

print(df.mean(axis=0))  # 默认;列矢量方向;(列矢量)元素沿列矢量方向按该方向标签(行标签)对齐

A     8.0
B     9.0
C    10.0
D    11.0
dtype: float64
  • 说明
    • 操作对象:元素(标量),操作对象在指定轴(方向)上
    • axis=1(矢量方向):在1轴搜索标签(列标签)并按该轴标签自动对齐操作对象,即对象沿1轴、行矢量方向延展(拓展)
      • 结果:按(逐)运算(行内按位置对齐运算)
    • axis=0(矢量方向);在0轴搜索标签(行标签)并按该轴标签自动对齐操作对象,即对象沿0轴、列矢量方向延展(拓展)
      • 结果:按运算(列内按位置对齐运算)

实例2

print(df.drop('C',axis=1))   # 操作对象:列矢量;沿指定轴方向按该轴标签(列标签)对齐

    A   B   D
a   0   1   3
b   4   5   7
c   8   9  11
d  12  13  15
e  16  17  19
  • 说明
    • 操作对象是列矢量整体,在指定轴1(方向)上
    • 操作对象可视为只有一个列矢量元素的同轴向的矢量,数组可视为一个行矢量(series),其中元素为列矢量
    • 在指定轴1(列标签轴)上搜索标签,并按该轴标签(列标签)对齐操作对象(列矢量)
      • 结果:按(列作为整体)运算(行内按位置对齐运算)

实例3

print(df.sub(df.A,axis=0))

   A  B  C  D
a  0  1  2  3
b  0  1  2  3
c  0  1  2  3
d  0  1  2  3
e  0  1  2  3

  • 说明
  • 操作对象:元素(标量),在指定0轴方向上
  • 在0轴上搜索标签(行标签),并按该轴标签自动对齐操作对象
    • 结果:按(逐)运算(列内按位置对齐运算)
print(df.sub(df.loc['a'],axis=0))

    A   B   C   D
A NaN NaN NaN NaN
B NaN NaN NaN NaN
C NaN NaN NaN NaN
D NaN NaN NaN NaN
a NaN NaN NaN NaN
b NaN NaN NaN NaN
c NaN NaN NaN NaN
d NaN NaN NaN NaN
e NaN NaN NaN NaN
  • 说明
    • 操作对象:元素(标量),在指定轴(维)方向上
    • 指定维上搜索位置,按位置对齐、运算
    • 0轴(列矢量)不存在行标签A, B, C, D
      • 结果:列内遍历,位置不匹配,增加行标签,填充NaN

总结

  • 操作对象(标量或矢量)在指定维上(排列),在指定维上搜索标签(位置),并按标签(位置)自动对齐操作对象
  • 即,轴向矢量内按位置对齐运算
  • 按指定轴矢量方向运算(矢量对象视为整体)
    • 0轴(0维),0维(列)内遍历,按位置对齐运算
      • 按列(逐列)运算
    • 1轴(1维),1维(行)内遍历,按位置对齐运算
      • 按行(逐行)运算
  • 可以应用到更高维
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读