Pandas DataFrame 中值函数
Pandas DataFrame Median Function
如果我有一个 Pandas DataFrame 并想计算每列的中值,似乎参数 axis=1 应该按列给出中值(根据文档)。但实际上, axis=0 给出了列中位数。这是一个简单的可复制示例:
import pandas as pd
my_data = [[1.1, 2.2, 3.3], [1.2, 2.3, 3.4], [1.3, 2.4, 3.5]]
df = pd.DataFrame(my_data)
print(df.head())
print("\nTry to calculate median with axis=1\n")
print(df.median(axis=1))
它按行显示中位数。将其更改为 axis=0 会按列显示中位数。这是否与为 DataFrame 设置索引的方式有关?
一些pandas函数axis=0和axis=1并不总是一致所以我推荐
df.median(axis='columns')
0 2.2
1 2.3
2 2.4
dtype: float64
它做了它应该做的,axis = 1
意味着在每一行应用函数。你可以从另一个例子中看到
>>> print(df.sum(axis = 1))
0 6.6
1 6.9
2 7.2
dtype: float64
或等效
>>> print(df.apply(sum, axis = 1))
0 6.6
1 6.9
2 7.2
dtype: float64
您可以在 documentation
中看到
axis : {0 or ‘index’, 1 or ‘columns’}, default 0
Axis along which the function is applied:
0 or ‘index’: apply function to each column.
1 or ‘columns’: apply function to each row.
所以如果你想计算每行列的平均值你应该使用axis = 0
如果我有一个 Pandas DataFrame 并想计算每列的中值,似乎参数 axis=1 应该按列给出中值(根据文档)。但实际上, axis=0 给出了列中位数。这是一个简单的可复制示例:
import pandas as pd
my_data = [[1.1, 2.2, 3.3], [1.2, 2.3, 3.4], [1.3, 2.4, 3.5]]
df = pd.DataFrame(my_data)
print(df.head())
print("\nTry to calculate median with axis=1\n")
print(df.median(axis=1))
它按行显示中位数。将其更改为 axis=0 会按列显示中位数。这是否与为 DataFrame 设置索引的方式有关?
一些pandas函数axis=0和axis=1并不总是一致所以我推荐
df.median(axis='columns')
0 2.2
1 2.3
2 2.4
dtype: float64
它做了它应该做的,axis = 1
意味着在每一行应用函数。你可以从另一个例子中看到
>>> print(df.sum(axis = 1))
0 6.6
1 6.9
2 7.2
dtype: float64
或等效
>>> print(df.apply(sum, axis = 1))
0 6.6
1 6.9
2 7.2
dtype: float64
您可以在 documentation
中看到axis : {0 or ‘index’, 1 or ‘columns’}, default 0
Axis along which the function is applied:
0 or ‘index’: apply function to each column.
1 or ‘columns’: apply function to each row.
所以如果你想计算每行列的平均值你应该使用axis = 0