一、理解axis参数

1、axis=0或axis=index

  如果是单行操作,就是指某一行

  如果是聚合操作,指的是跨行cross rows

2、axis=1或axis=columns

  如果是单列操作,就是指某一列

  如果是聚合操作,指的是跨列cross columns

特别指出:按哪个axis,那个axis就要被遍历,而其他axis保持不动

二、应用实例

1、删除单行

import pandas as pd
import numpy as np
df=pd.DataFrame(
    np.arange(12).reshape(3,4),
    columns=['A','B','C','D']
)                                   #使用numpy.arange()函数生成3行4列的Dataframe
print(df)
print('______________')
#单列drop

print(df.drop('A',axis=1))
print('--------------')
print(df.drop(columns='A')) #第二种写法
print(df.drop(labels='A',axis=1))#第三种写法

A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
______________
B C D
0 1 2 3
1 5 6 7
2 9 10 11
--------------
B C D
0 1 2 3
1 5 6 7
2 9 10 11
--------------

B C D
0 1 2 3
1 5 6 7
2 9 10 11
--------------

2、删除单行

print('--------------')
print(df.drop(1,axis=0)) 
print('--------------')
print(df.drop(labels=1)) #第二种写法

运行结果

A B C D
0 0 1 2 3
2 8 9 10 11
--------------
A B C D
0 0 1 2 3
2 8 9 10 11

说明:np.drop()方法:

DataFrame.drop(self,labels = None,axis = 0,index = None,columns = None,level = None,inplace = False,errors ='raise' )

通过指定标签名称和轴,或者直接指定索引或列名称来直接删除行或列。

常用参数含义:

labels : 标签表示索引或列

axis : 指定轴,axis = 0(删除行) axis = 1(删除列)

index : 索引(行) labels, axis=0相当于index=labels

columns : 列 labels, axis=1相当于columns=labels

inplace :布尔类型,默认值为false。采用inplace=True之后,原数组名对应的内存值直接改变

3、按axis=0进行聚合操作(求平均)

print(df)
pint('------------')
print(df.mean(axis=0)

 

4、按axis=1进行聚合操作

 

print(df.mean(axis=1))

5、加深理解

 

1 def get_sum_value(x):
2     return x['A']*x['B']*x['C']*x['D']
3 df['sum_value']=df.apply(get_sum_value,axis=1)
4 print(df)

结果:

当axis=1,就是把各列的值传入函数,完成运算

 ABCDsum_value
0 0 1 2 3 0
1 4 5 6 7 840
2 8 9 10 11 7920