刚开始使用axis参数的时候觉得很困惑,不清楚什么时候用axis=0,什么时候该用axis=1. 看了些教程后茅塞顿开,这篇文章就是对axis参数使用的一些总结。
data = pd.read_csv(r'D:/python/Wholesale customers data.csv') print(data.head())
Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen 0 2 3 12669 9656 7561 214 2674 1338 1 2 3 7057 9810 9568 1762 3293 1776 2 2 3 6353 8808 7684 2405 3516 7844 3 1 3 13265 1196 4221 6404 507 1788 4 2 3 22615 5410 7198 3915 1777 5185
如果想删除最后一列Delicassen该怎么做呢?
print(data.drop('Delicassen', axis=1).head())
Channel Region Fresh Milk Grocery Frozen Detergents_Paper 0 2 3 12669 9656 7561 214 2674 1 2 3 7057 9810 9568 1762 3293 2 2 3 6353 8808 7684 2405 3516 3 1 3 13265 1196 4221 6404 507 4 2 3 22615 5410 7198 3915 1777
axis = 0就像是X轴跨行上下移动,而axis = 1就好比Y轴跨列左右移动, 删除一整列,可以想象成Y轴水平移动一格,抹除掉一整列。
#同理,如果我们要删除多列,只需要向函数传递多个列的名称,相当于Y轴在水平方向移动列多格.
data.drop(['Delicassen', 'Channel'], axis=1).head()
相应的如果要删除某行 axis = 0
删除第二行
data.drop(2, axis = 0)
Channel Region Fresh Milk Grocery Frozen Detergents_Paper Delicassen 0 2 3 12669 9656 7561 214 2674 1338 1 2 3 7057 9810 9568 1762 3293 1776 3 1 3 13265 1196 4221 6404 507 1788 4 2 3 22615 5410 7198 3915 1777 5185 5 2 3 9413 8259 5126 666 1795 1451
另外一种常见的需要用到axis参数的情况是在mean等统计函数里面
#假设我们要对每一行求平均值,这时axis = 0 是对列进行计算
print(data.mean(axis=0).head())
Channel 1.322727 Region 2.543182 Fresh 12000.297727 Milk 5796.265909 Grocery 7951.277273 dtype: float64