一、理解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,就是把各列的值传入函数,完成运算
| A | B | C | D | sum_value | |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 2 | 3 | 0 |
| 1 | 4 | 5 | 6 | 7 | 840 |
| 2 | 8 | 9 | 10 | 11 | 7920 |