单行单列操作,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,对每一行的每一列经过一番操作,返回期望的数据。
*此文仅为个人笔记



