📅  最后修改于: 2023-12-03 15:08:43.986000             🧑  作者: Mango
在 Pandas 中,轴(axis)是对数据进行操作的关键参数之一。轴被用来指定数据集中的哪个维度进行操作,行轴(axis=0)代表沿着行方向进行操作,列轴(axis=1)代表沿着列方向进行操作。本文将介绍如何在 Pandas 中使用轴=0和轴=1。
在 Pandas 中,许多操作都需要明确指定轴参数,这是因为 Pandas 的数据结构(如Series和DataFrame)都是二维的。下面是一些常用的操作场景:
下面将用一个示例来演示如何在 Pandas 中使用轴=0和轴=1。
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'score1': [85, 90, 73, 64],
'score2': [79, 83, 91, 87],
})
# 计算每一列的平均值 (axis=0)
mean_axis0 = df.mean(axis=0)
print(mean_axis0)
# 计算每一行的平均值 (axis=1)
mean_axis1 = df.mean(axis=1)
print(mean_axis1)
# 对 DataFrame 按行排序 (axis=1)
sorted_df_by_row = df.sort_values(by='name', axis=1)
print(sorted_df_by_row)
# 对 DataFrame 按列排序 (axis=0)
sorted_df_by_col = df.sort_values(by='name', axis=0)
print(sorted_df_by_col)
# 水平合并两个 DataFrame (axis=1)
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]})
merged_df_by_col = pd.concat([df1, df2], axis=1)
print(merged_df_by_col)
# 垂直合并两个 DataFrame (axis=0)
merged_df_by_row = pd.concat([df1, df2], axis=0)
print(merged_df_by_row)
输出:
age 30.5
score1 78.0
score2 85.0
dtype: float64
0 62.0
1 76.5
2 69.0
3 64.75
dtype: float64
age name score1 score2
0 25 A 85 79
1 32 B 90 83
2 18 C 73 91
3 47 D 64 87
name age score1 score2
0 Alice 25 85 79
2 Charlie 18 73 91
1 Bob 32 90 83
3 David 47 64 87
A B C D
0 1 3 5 7
1 2 4 6 8
A B
0 1 3
1 2 4
0 5 7
1 6 8
从上面的输出可以看到,我们在不同的操作场景中使用了不同的轴(axis),实现了各种数据操作。