如何理解pandas库dataframe类型方法里面的axis参数?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文解读dataframe
类型的各种方法里面的axis
参数是什么意思,axis
并不是属性,而是经常出现在各种函数方法里面的参数。其实,一句话总结本文的话,axis
就是表述操作的是数据流的运动方向,axis=1
为一列一列推进,axis=0
为一行一行推进。

大家好,这里是苏南大叔的程序如此灵动博客,记录苏南大叔的代码编程感悟。本文描述dataframe
的世界里面,axis
究竟代表着什么意思。测试环境:python@3.11.0
,win10
。
方法综述
在前面的文章里面,对dataframe
里面进行列删除或者列合并操作的时候,都曾经涉及到axis
的概念。参考文章:
总的原则,是表述数据流推进的方向:
axis=1
还可以表述为:axis="columns"
,数据流方向为一列一列(从左到右)推进。axis=0
还可以表述为:axis="index"
,数据流方向为一行一行(从上到下)推进。

为了更好的理解本文的内容,本文还增加了一个.sum()
方法,作用是对某行或某列数据求和。本文共涉及三个方法:
方法名 | 作用 |
---|---|
df.sum() | 求和 |
df.drop() | 删除 |
pd.concat() | 合并 |
范例数据
现在定义了两个dataframe
数据,用于后续的演示:

输出:
axis=1
/axis="columns"
,水平一列一列推进
axis=1
/axis="columns"
,数据流沿【水平方向】流动,从左到右一列一列推进。
df.sum(axis=1)
是针对每一行求和。df.drop(col, axis=1)
是去掉某一列(或某几列)数据。pd.concat([df, df2], axis=1)
是叠加在右侧的。

测试代码之求每行的和:
输出结果:
测试代码之删除某几列:
输出结果:
测试代码之合并到右侧:
输出为:
axis=0
/axis="index"
,垂直一行一行推进
axis=0
/axis="index"
,数据流沿着【垂直方向】流动,所以:
df.sum(axis=0)
是针对每一列求和。df.drop(index, axis=0)
是删除某一行(或某几行)数据。pd.concat([df, df2], axis=1)
效果是叠加在底部的。

测试代码之求每列的和:
输出结果:
测试代码之删除某几行:
输出结果:
测试代码之合并到下方:
输出为:
结束语
苏南大叔的更多python
文章,请点击:


