Python - Pandas 经常用到的axis参数怎么理解?千层蛋糕

本文摘要:

单行单列操作,axis=0或者‘index’指的就是行,axis=1或者‘columns’指的就是列。

多行多列操作,axis=0或者‘index’指的是跨行操作,可以想象成一块千层蛋糕,双手从上下将其压缩成一层蛋糕,剩下的只有多列了,多列就是你返回对象的索引,每个索引对应的值就是对每一行操作的结果。
axis=1或者‘columns’指的是跨列操作,还是一块千层蛋糕,双手从两侧将其压缩成一条千层蛋糕,剩下的就是一千层,也就是行,这些行就是你希望返回对象的索引,每个索引对应的值就是对每一列操作的结果。

这样想象不知道是否会更好理解。若有误,欢迎指正!
在这里插入图片描述

单行单列

在这里插入图片描述

# 删除A列
df.drop('A', axis=1)

# 删除1行
df.drop(1, axis=0)

多行多列

例如,要用mean求平均值

df.mean(axis=0)

axis=0,压缩每一行,剩下列,列名为返回对象的索引,索引的值为 这列下每一行的相加的平均值。

返回结果如下图所示:
在这里插入图片描述

df.mean(axis=1)

axis=1,压缩每一列,剩下行,行索引为返回对象的索引,索引的值为 这行的每一列的相加的平均值。
返回结果如下图所示:
在这里插入图片描述
Python - Pandas 如何新增数据列 前面的这篇文章中,apply方法用到了axis,这边拿来细说一下,为什么用axis=1。代码如下:

def get_wendu_type(x):
	if x['High'] > 33:
		return '高温'
	elif x['Low'] < 10:
		return '低温'
	else:
		return '常温'

# 此处axis=1,Series的index为colums
df.loc[:, 'wendu_type'] = df.apply(get_wendu_type, axis=1)

代码目的是在原df中增加一新列’wendu_type’。
df.apply是对df经过函数操作,返回一个Series对象。
因为我希望在原df中新增一列,所以我的返回对象肯定希望其行数与原df一致。所以我们选择从两侧压缩,即axis=1,对每一行的每一列经过一番操作,返回期望的数据。x其实就是表示每一行的Series,索引为列名。

*此文仅为个人笔记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值