Pandas的axis参数理解:
- axis=0 或者 'index':
- 如果是单行操作,就指某一行
- 如果是聚合操作,就指跨行cross rows
- axis=1 或者 'columns':
- 如果是单列操作,就指某一列
- 如果是聚合操作,指的是跨列corss columns
- 按哪个axis, 就是这个axis要动起来(类似被for遍历),其它的axis保持不动
例子:我们先新建一个DataFrame, 这个df包含12(0-11)个数字,3行4列,并加上列标签A,B,C,D
import pandas as pd import numpy as np
df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['A','B','C','D']) print(df) A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 1. 单列drop,就是删除某一列。 # 代表的就是删除某列
df = df.drop('A',axis=1) ## 删除columns=A列
print(df)
B C D
0 1 2 3
1 5 6 7
2 9 10 11
df = df.drop(1,axis=0) ## 删除index=1的行 print(df) B C D 0 1 2 3 2 9 10 11
3. 按axis=0/index 执行mean聚合操作
df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['A','B','C','D']) print(df) A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11
df = df.mean(axis=0) ##指定按哪个axis,就是这个axis要动起来,其它axis保持不动 print(df) A 4.0 B 5.0 C 6.0 D 7.0 dtype: float64

4. 按axis=1/colmns执行mean聚合操作
df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['A','B','C','D']) print(df) A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11
df = df.mean(axis=1) ##指定按哪个axis,就是这个axis要动起来,其它axis保持不动 print(df) 0 1.5 1 5.5 2 9.5 dtype: float64

5.再次枚举
df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['A','B','C','D']) print(df) A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11
def get_sum_value(x):
return x['A'] + x['B'] + x['C'] + x['D']
df['sum_value'] = df.apply(get_sum_value, axis=1)
print(df)
A B C D sum_value
0 0 1 2 3 6
1 4 5 6 7 22
2 8 9 10 11 38
743

被折叠的 条评论
为什么被折叠?



