pandas.DataFrame.median 方法用于计算 DataFrame 中指定轴的中位数(Median)。中位数是排序后位于中间的数值,对于偶数个数据,则取中间两个数的平均值。默认计算列方向的中位数(axis=0)。skipna=True 忽略 NaN,skipna=False 不忽略 NaN。numeric_only=True 只计算数值列。可用于找出数据的中位趋势,避免极端值影响平均数。本文主要介绍一下Pandas中pandas.DataFrame.median方法的使用。

DataFrame.median(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)  [source]

返回所请求axi的值的中位数。

参数:       

axis{index (0), columns (1)}

要应用的功能的轴。

skipnabool,默认为True

计算结果时排除NA/null值。

levelint或级别名称,

默认为None

如果轴是MultiIndex(分层),

则沿特定级别计数,并折叠为Series

numeric_onlybool

默认值None

仅包括floatintboolean列。

如果为None,将尝试使用所有内容,

然后仅使用数字数据。未针对Series实施。

**kwargs

要传递给函数的其他关键字参数。

返回

Series 或 DataFrame(如果指定level)

例子

1)计算每列的中位数

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [3, 3, 4, 2, 1],
    'C': [10, 20, 30, 40, 50]
})

median_col = df.median()
print(median_col)

2)计算每行的中位数

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [3, 3, 4, 2, 1],
    'C': [10, 20, 30, 40, 50]
})

median_row = df.median(axis=1)
print(median_row)

3)处理 NaN

import pandas as pd

df_nan = pd.DataFrame({
    'A': [1, 2, None, 4, 5],
    'B': [3, 3, 4, None, 1],
    'C': [10, 20, 30, 40, None]
})

median_nan_skip = df_nan.median()  # 默认 skipna=True
median_nan_no_skip = df_nan.median(skipna=False)

print("忽略NaN的中位数:\n", median_nan_skip)
print("\n不忽略NaN的中位数:\n", median_nan_no_skip)

4)numeric_only=True(仅计算数值列)

import pandas as pd

df_mixed = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['x', 'y', 'z', 'w', 'v'],
    'C': [10, 20, 30, 40, 50]
})

median_numeric = df_mixed.median(numeric_only=True)
print(median_numeric)

推荐文档

相关文档

大家感兴趣的内容

随机列表