pandas 中的 axis¶
pandas 中的axis
参数代表对数据进行处理时遵循的方向。在单行、单列操作(如drop
)时,axis=0
和axis=1
分别代表删除行和删除列。在聚合操作(如求mean
)时,axis=0
和axis=1
分别代表求列均值和行均值。
总结
axis=0
:
如果是单行操作,就指的是某一行;
如果是聚合操作,指的是跨行 cross rows。
axis=1
:
如果是单列操作,就指的是某一列;
如果是聚合操作,指的是跨列 cross columns。
本文转载自公众号Python For Finance
的 这篇帖子,已获得作者授权。
准备数据¶
import pandas as pd
df = pd.DataFrame(
[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]],
columns=["a", "b", "c", "d"],
index=["one", "two", "three"],
)
print(df)
结果为:
axis=0
代表行?axis=1
代表列?¶
有人认为axis=0
代表行,axis=1
代表列,那么你就会迷惑:
drop
函数¶
drop
函数中axis=0
删除行,axis=1
删除列
删除 a 列:
结果为:
删除one
行:
结果为:
mean
函数¶
mean
函数的axis=0
表示对列进行求取均值,axis=1
表示对行进行求取均值。
对行取均值:
结果为:
对列取均值:
结果为:
drop
函数中axis=0
删除行,axis=1
删除列。
mean
函数的axis=0
表示对列进行求取均值,axis=1
表示对行进行求取均值。
axis
代表方向!¶
axis
在英文中是轴的意义,二维数据拥有两个轴:第 0 轴(axis=0
)沿着行的垂直往下,第 1 轴(axis=1
)沿着列的方向水平延伸。
坐标轴是有方向的,所以千万不要用行和列的思维去想 axis,因为行和列是没有方向的。
axis 的重点在于方向,而不是行和列。axis=1 代表跨列(cross columns),表示横向,方向从左到右;axis=0 代表跨行(cross rows),表示纵向,方向从上到下。
df.mean(axis=1)
代表沿着列水平方向计算均值,从左到右横向求均值。df.drop(name, axis=1)
代表将name
对应的列标签(们)沿着水平的方向依次删掉,横向发生变化,体现为列的减少。
Note
axis=0
:
如果是单行操作,就指的是某一行;
如果是聚合操作,指的是跨行 cross rows。
axis=1
:
如果是单列操作,就指的是某一列;
如果是聚合操作,指的是跨列 cross columns。