【问题标题】:pandas DataFrame median for certain columns某些列的 pandas DataFrame 中位数
【发布时间】:2020-07-06 01:21:29
【问题描述】:

试图弄清楚如何计算 pandas DataFrame 中某些列的值的中值。例如,我有一个 7 列和 200 行的 DataFrame,我想提取索引 1-3(包括)的列中包含的数字并计算所有行总和的中位数;对于 3 行,它将是 (x+y+z) + (x+y+z) + (x+y+z) 的中位数。

我试过了:

df["median"] = df.apply(lambda x : median(x), df[2:4])

但它会引发错误:

`TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed

我也试过了:

x = df["column1"]
y = df["column2"]
z = df["column3"]
median_nums = [x,y,z]

但该列表不合适,我无法从 DataFrame 中提取数字本身以便在它们上使用 statistics.median。出现与上面相同的错误

非常感谢您的帮助

【问题讨论】:

    标签: python pandas median


    【解决方案1】:

    median之前可以选择

    df['New']=df.iloc[:,2:4].median(axis=1)
    

    【讨论】:

    • 我的错,我没有写好我需要的东西,我现在会更正它。我应该提到,我需要计算中位数的方法是为所有行添加:x + y + z,然后从总数中找到中位数。所以如果也有 3 行,其中 x = 10, 20, 30; y = 10,10,10 和 z = 5,5,5,中位数为 30。你的方法仍然可以吗?感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多