Pandas 十一:axis参数怎么理解?

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

如果是单列操作,就指的是某一列
如果是聚合操作,指的是跨列cross columns

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

1

import pandas as pd
import numpy as np
No output

2

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

3

df

3

A	B	C	D
0	0	1	2	3
1	4	5	6	7
2	8	9	10	11

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

4

# 代表的就是删除某列
df.drop("A", axis=1)

4

B	C	D
0	1	2	3
1	5	6	7
2	9	10	11

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

5

df

5

A	B	C	D
0	0	1	2	3
1	4	5	6	7
2	8	9	10	11

6

# 代表的就是删除某行
df.drop(1, axis=0)

6

A	B	C	D
0	0	1	2	3
2	8	9	10	11

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

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

df

7

A	B	C	D
0	0	1	2	3
1	4	5	6	7
2	8	9	10	11

8

# axis=0 or axis=index
df.mean(axis=0)

8

A    4.0
B    5.0
C    6.0
D    7.0
dtype: float64

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

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

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

df

9

A	B	C	D
0	0	1	2	3
1	4	5	6	7
2	8	9	10	11

10

# axis=1 or axis=columns
df.mean(axis=1)

10

0    1.5
1    5.5
2    9.5
dtype: float64

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

5、再次举例,加深理解

11

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

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

12

df

12

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保持不动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值