dataframe中axis值为0和1的区别
1.列表如下
df = pd.DataFrame(
[[1, 1, 1], [2, 2, 2], [3, 3, 3]],
columns=['a', 'b', 'c'],
index=['d', 'e', 'f'])
a b c
d 1 1 1
e 2 2 2
f 3 3 3
需要注意的是,如果想要给dataframe中插入随机数,思路如下
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 3), columns=list('abc'))
a b c
0 -0.578813 0.756792 -0.678878
1 0.479110 1.187211 0.651269
2 1.229985 0.517533 0.213482
3 1.603191 1.164784 -0.004222
4 -1.010882 -0.008416 0.083528
2.axis=0
df = pd.DataFrame(
[[1, 1, 1], [2, 2, 2], [3, 3, 3]],
columns=['a', 'b', 'c'],
index=['d', 'e', 'f'])
print(df.mean(axis=0))
输出:
a 2.0
b 2.0
c 2.0
3.axis=1
例子1:
df = pd.DataFrame(
[[1, 1, 1], [2, 2, 2], [3, 3, 3]],
columns=['a', 'b', 'c'],
index=['d', 'e', 'f'])
print(df.mean(axis=1))
输出:
d 1.0
e 2.0
f 3.0
例子2:
在dateframe中新增一列,在这个例子中,axis比如为1,写0则会报错
def ac(a,b):
print(a)
return 10
def test4():
df = pd.DataFrame(
[[1, 1, 1], [2, 2, 2], [3, 3, 3]],
columns=['a', 'b', 'c'],
index=['d', 'e', 'f'])
df['g'] = df.apply(lambda row:ac(row['a'],row['b']),axis=1)
print(df.head(10))
输出:
a = 1
a = 2
a = 3
a b c g
d 1 1 1 10
e 2 2 2 10
f 3 3 3 10
结论:从上图的结果,按照我的理解,尤其是例子2,apply每次都会将一行数据传给ac函数进行 处理
所以,axis=1时,某一瞬间,会处理一整行数据,处理完之后,再处理下一行
axis=0时,同理