1. 程式人生 > 其它 >python中關於axis=0和axis=1應該如何理解?

python中關於axis=0和axis=1應該如何理解?

技術標籤:pythonpython

axis=0:資料在縱向發生變化;
axis=1:資料在橫向發生變化。

在這裡插入圖片描述
下面我們用python程式碼的方式更加直觀的瞭解axis=0和axis=1的區別。

import pandas as pd

data = pd.DataFrame(data=[['吳文化', '男', 100, 98, 85],
                          ['史珍香', '女', 66, 75, 72],
                          ['範建', '男', 77, 88, 100],
                          [
'胡說', '男', 80, 90, 86], ['夏扯淡', '女', 76, 80, 96]], columns=['name', 'gender', 'math', 'chinese', 'english']) print(data)

上面程式碼的結果如下,這就是我們接下來要操作的資料:

  name gender  math  chinese  english
0  吳文化      男   100       98       85
1  史珍香      女    66       75       72
2 範建 男 77 88 100 3 胡說 男 80 90 86 4 夏扯淡 女 76 80 96

1)首先我們求一下每一科目的平均成績,每一科目的平均成績就是求科目列的平均值。求科目列的平均值時,我們會把多行壓縮成三行(因為有三個科目),這是屬於縱向的變化,所以應該指定axis=0。

# 每一科目的平均成績
avg_subject = data[['math', 'chinese', 'english']].mean(axis=0)
print(avg_subject)

# 下面是執行結果
math 79.8 chinese 86.2 english 87.8

2)然後我們求一下每個同學的平均成績。每一個同學的平均成績,會把科目所在的三個列壓縮成一個列,屬於橫向的變化,所以應該指定axis=1。

avg_score = data[['math', 'chinese', 'english']].mean(axis=1)
print(avg_score)

# 下面是執行結果
0    94.333333
1    71.000000
2    88.333333
3    85.333333
4    84.000000

3)接下來我們看一下刪除行或者列。
刪除math列,因為列減少了,相當於人瘦了,橫向上發生了變化。所以我們要指定axis=1。

data.drop(labels='math', inplace=True, axis=1)
print(data)

# 下面是執行結果
 name gender  chinese  english
0  吳文化      男       98       85
1  史珍香      女       75       72
2   範建      男       88      100
3   胡說      男       90       86
4  夏扯淡      女       80       96

4)最後我們看一下刪除指定行。因為刪除了行,相當於人變矮了,縱向發生了變化。所以指定axis=0。

data.drop(index=0, inplace=True, axis=0)
print(data)

# 下面是執行結果
  name gender  chinese  english
1  史珍香      女       75       72
2   範建      男       88      100
3   胡說      男       90       86
4  夏扯淡      女       80       96