python - Pandas :取多个数据框的中位数

标签 python pandas

这个问题在on this site之前被问过,但建议的解决方案对我不起作用。我有多个数据框,所有数据框都具有相同的列和索引,如下所示:

       E          F          H          I  
row                                                                     
CE     17.917153 10.875160   9.970251  12.255511   
CF     9.780500  16.261098  10.021619   9.447307   
CH     12.293967 10.608844  10.870527  17.720458   
CI     9.967815  11.181572  17.550371  10.845565

在所有数据帧中,我想取每个 i,j 元素的中位数。

例如,如果我尝试将所有数据帧存储在名为 dict 的字典中,然后执行以下操作:

np.median(dict.values(), axis=0)

按照建议here ,我得到一个错误:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

正确的处理方式是什么?

最佳答案

一个“笨拙”的方法是创建一个 panel .例如:

>>> l = [df1, df2, df3, ...]
>>> panel = pd.Panel({i: df for i, df in enumerate(l)})
>>> panel
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 4 (major_axis) x 4 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 3

现在要计算中位数,只需执行以下操作:

panel.median(axis=0)

关于python - Pandas :取多个数据框的中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755657/

相关文章:

python - 如何避免从 Bash 脚本多次调用 Python 解释器?

python - 强制使用 virtualenv pip

python - "classes themselves are objects"是什么意思?

python - NetworkX/Pandas - 无法将节点的度数输出到 .txt 文件中(错误消息)

python - 使用 dataframe.shift() 时 Pandas 表现得很奇怪

python - 使用平均值填充数据框中缺失的日期

python - Python模拟库中嵌套调用的模拟返回值

python - odoo 13 定制多家公司的产品和供应商

python - key 错误 : column not found. ..但它就在那里

python - 转置和连接字符串