Pandas 中 axis 的含义
Suraj Joshi
2021年1月22日
本教程解释了在 DataFrames 和 Series 等 Pandas 对象的各种方法中使用的 axis
参数的含义。
import pandas as pd
empl_df = pd.DataFrame(
{
"Name": ["Jon", "Willy", "Mike", "Luna", "Sam", "Aliza"],
"Age": [30, 33, 35, 30, 30, 31],
"Weight(KG)": [75, 75, 80, 70, 73, 70],
"Height(meters)": [1.7, 1.7, 1.85, 1.75, 1.8, 1.75],
"Salary($)": [3300, 3500, 4000, 3050, 3500, 3700],
}
)
print(empl_df)
输出:
Name Age Weight(KG) Height(meters) Salary($)
0 Jon 30 75 1.70 3300
1 Willy 33 75 1.70 3500
2 Mike 35 80 1.85 4000
3 Luna 30 70 1.75 3050
4 Sam 30 73 1.80 3500
5 Aliza 31 70 1.75 3700
我们使用 DataFrame empl_df
来解释如何在 Pandas 方法中使用 axis
参数。
在 Pandas 方法中使用 axis
参数
axis
参数指定在 DataFrame 中应用特定方法或函数的方向。axis=0
代表函数是列式应用,axis=1
表示函数是行式应用在 DataFrame 上。
如果我们按列应用函数,我们将得到一个单行的结果;如果按行应用函数,我们将得到一个单列的 DataFrame。
示例:在 Pandas 方法中使用 axis=0
import pandas as pd
empl_df = pd.DataFrame(
{
"Name": ["Jon", "Willy", "Mike", "Luna", "Sam", "Aliza"],
"Age": [30, 33, 35, 30, 30, 31],
"Weight(KG)": [75, 75, 80, 70, 73, 70],
"Height(meters)": [1.7, 1.7, 1.85, 1.75, 1.8, 1.75],
"Salary($)": [3300, 3500, 4000, 3050, 3500, 3700],
}
)
print("The Employee DataFrame is:")
print(empl_df, "\n")
print("The DataFrame with mean values of each column is:")
print(empl_df.mean(axis=0))
输出:
The Employee DataFrame is:
Name Age Weight(KG) Height(meters) Salary($)
0 Jon 30 75 1.70 3300
1 Willy 33 75 1.70 3500
2 Mike 35 80 1.85 4000
3 Luna 30 70 1.75 3050
4 Sam 30 73 1.80 3500
5 Aliza 31 70 1.75 3700
The DataFrame with mean values of each column is:
Age 31.500000
Weight(KG) 73.833333
Height(meters) 1.758333
Salary($) 3508.333333
dtype: float64
它计算 DataFrame empl_df
的按列平均值。平均值只计算有数值的列。
如果我们设置 axis=0
,它将通过对该列的行值进行平均来计算每列的平均值。
例子在 Pandas 方法中使用 axis=1
import pandas as pd
empl_df = pd.DataFrame(
{
"Name": ["Jon", "Willy", "Mike", "Luna", "Sam", "Aliza"],
"Age": [30, 33, 35, 30, 30, 31],
"Weight(KG)": [75, 75, 80, 70, 73, 70],
"Height(meters)": [1.7, 1.7, 1.85, 1.75, 1.8, 1.75],
"Salary($)": [3300, 3500, 4000, 3050, 3500, 3700],
}
)
print("The Employee DataFrame is:")
print(empl_df, "\n")
print("The DataFrame with mean values of each row is:")
print(empl_df.mean(axis=1))
输出:
The Employee DataFrame is:
Name Age Weight(KG) Height(meters) Salary($)
0 Jon 30 75 1.70 3300
1 Willy 33 75 1.70 3500
2 Mike 35 80 1.85 4000
3 Luna 30 70 1.75 3050
4 Sam 30 73 1.80 3500
5 Aliza 31 70 1.75 3700
The DataFrame with mean values of each row is:
0 851.6750
1 902.4250
2 1029.2125
3 787.9375
4 901.2000
5 950.6875
dtype: float64
它计算 DataFrame empl_df
的行平均值,换句话说,它将计算每行的平均值,通过对该行的数值类型的列值进行平均。我们将在最后得到一个单列的每行平均值。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn相关文章 - Pandas DataFrame Row
- 如何获取 Pandas DataFrame 的行数
- 如何对 Pandas 中的 DataFrame 行随机排序
- 如何根据 Pandas 中的列值过滤 DataFrame 行
- 如何在 Pandas 中遍历 DataFrame 的行
- Pandas 中如何获取特定列满足给定条件的所有行的索引
- Pandas DataFrame 删除某行