- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下数据框
A B C D E F
Algo T
X 1 0.2 0.2 0.0 0.0 0.2 0.2
2 0.0 0.0 0.0 0.0 0.0 0.0
Y 15 0.7 1.4 1.5 1.0 0.7 1.4
30 0.5 0.3 1.0 0.4 0.5 0.4
45 0.2 0.0 0.6 0.0 0.2 0.0
Z 30 1.8 2.3 0.6 0.7 1.8 2.3
60 1.0 0.5 0.3 0.4 1.0 0.5
90 0.3 0.2 0.0 0.2 0.4 0.2
我想知道如何在底部显示一行,显示 A、B、C、... F 列的平均值
A B C D E F
Algo T
X 1 0.2 0.2 0.0 0.0 0.2 0.2
2 0.0 0.0 0.0 0.0 0.0 0.0
Y 15 0.7 1.4 1.5 1.0 0.7 1.4
30 0.5 0.3 1.0 0.4 0.5 0.4
45 0.2 0.0 0.6 0.0 0.2 0.0
Z 30 1.8 2.3 0.6 0.7 1.8 2.3
60 1.0 0.5 0.3 0.4 1.0 0.5
90 0.3 0.2 0.0 0.2 0.4 0.2
Mean ... ... ... ... ... ...
最佳答案
您可以使用 .loc
分配平均行。 MultiIndex
的值是元组,因此相应地分配:
df.loc[('Mean', ''), :] = df.mean()
A B C D E F
Algo T
X 1 0.2000 0.2000 0.0 0.0000 0.2 0.200
2 0.0000 0.0000 0.0 0.0000 0.0 0.000
Y 15 0.7000 1.4000 1.5 1.0000 0.7 1.400
30 0.5000 0.3000 1.0 0.4000 0.5 0.400
45 0.2000 0.0000 0.6 0.0000 0.2 0.000
Z 30 1.8000 2.3000 0.6 0.7000 1.8 2.300
60 1.0000 0.5000 0.3 0.4000 1.0 0.500
90 0.3000 0.2000 0.0 0.2000 0.4 0.200
Mean 0.5875 0.6125 0.5 0.3375 0.6 0.625
如果您想要每个组的单独平均值,请连接。这里我们可以使用 .agg
指定一个列表和 stack
来获得我们需要的 MultiIndex
而无需太多手动操作。您现在可以泛化到多个聚合函数 .agg(['mean', 'std', 'size'])
并且它将在 T< 中添加所有具有聚合函数的函数
索引级别。
import pandas as pd
pd.concat([df, df.groupby(level=0).agg(['mean']).stack(1)])
A B C D E F
Algo T
X 1 0.200000 0.200000 0.000000 0.000000 0.200000 0.2
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.0
Y 15 0.700000 1.400000 1.500000 1.000000 0.700000 1.4
30 0.500000 0.300000 1.000000 0.400000 0.500000 0.4
45 0.200000 0.000000 0.600000 0.000000 0.200000 0.0
Z 30 1.800000 2.300000 0.600000 0.700000 1.800000 2.3
60 1.000000 0.500000 0.300000 0.400000 1.000000 0.5
90 0.300000 0.200000 0.000000 0.200000 0.400000 0.2
X mean 0.100000 0.100000 0.000000 0.000000 0.100000 0.1
Y mean 0.466667 0.566667 1.033333 0.466667 0.466667 0.6
Z mean 1.033333 1.000000 0.300000 0.433333 1.066667 1.0
关于python - MultiIndex 数据帧的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812880/
我有一个包含 4 个级别的 MultiIndex 的 pandas 数据框。我正在尝试为每个 1 级索引选择具有不同 4 级索引的行。 例子: In [68]: df = pd.DataFrame({
我有一个数据框,其中包含 Year 和 Month 的多个索引,如下所示 | |Value Year |Month| | 1 | 3 1992 | 2 | 5
我有一个带有 3 级 MultiIndex 的 pandas 数据框。我正在尝试根据对应于两个级别的值列表提取此数据帧的行。 我有这样的事情: ix = pd.MultiIndex.from_prod
我想将具有多索引的数据帧中的所有列除以另一个具有多索引的数据帧,更小一级。前两个水平的蛾指数是相同的。并且应该播放第三级。 df_0 = pd.DataFrame( { "col0": [ 1
我想知道是否有人可以帮助我解决这个问题。 如果我有一个简单的数据框: one two three four 0 A 1 a 1 1 A 2 b
我希望创建一个新的 DataFrame,与基于芯片的设备 A 和 B 的结果相对应。 以下是我创建 DataFrame 的代码: import numpy as np import pandas as
我希望创建一个新的 DataFrame,与基于芯片的设备 A 和 B 的结果相对应。 以下是我创建 DataFrame 的代码: import numpy as np import pandas as
请让我知道如何将两个 DataFrame 与排序的 MultiIndexes 连接起来,以便结果具有排序的 MultiIndex。 由于两者都是排序的,算法必须根据两个 DataFrame 中的总行数
基本场景 对于推荐服务,我正在针对一组用户-项目交互训练矩阵分解模型 (LightFM)。为了使矩阵分解模型产生最佳结果,我需要将我的用户 ID 和商品 ID 映射到从 0 开始的连续整数 ID 范围
好的,所以我有一个数据框,其中包含时间序列数据,每列都有一个多行索引。这是数据的样例,它是 csv 格式的。加载数据在这里不是问题。 我想要做的是能够创建一个箱线图,其中包含根据多索引特定行中的不同类
我有这个数据框: df = pd.DataFrame({'NUMBER_1': {('2019-07', 'A'): 4, ('2019-07', 'D'): 2, ('2019-08', 'A'):
我有点难以对用于我的一个数据集的列的 pandas MultiIndex 进行排序: MultiIndex(levels=[['Jan', 'Feb', 'Mar', 'Apr', 'May', 'J
我有点难以对用于我的一个数据集的列的 pandas MultiIndex 进行排序: MultiIndex(levels=[['Jan', 'Feb', 'Mar', 'Apr', 'May', 'J
我有一个列表列表,我想将其制成多索引 Pandas 数据框,然后可以合并到原始 Pandas 数据框。列表的每一行都包含一个观察值,列表中的值由与该观察值匹配的相应行组成。 这是我所拥有的一个简单版本
我有以下 DataFrame(从我无法更改的 CSV 文件中读取): df = pd.DataFrame([['low', 0.5, 123, 0.8, 123],
我正在创建一个 MultiIndex.from_product(),但它必须是来自两个单独的 MultiIndexes 的唯一值的乘积。我下面的解决方案有效,但我想知道是否有更优雅的解决方案。 fro
我有一个很大的pd.DataFrame,a,看起来像: bid TIT IM Equity HELN SE Equity FHZN SE Equity GLEN LN Equity f
我创建了一个带有多索引的数据框,其中一个索引是一个元组。我无法使用 .loc 进行索引。 这是数据框: a = [['a','a','a','b','b','b','c','c'],[('one',2
我有以下数据框 A B C D E F Algo T X
我在使用 MultiIndex 和 stack() 时遇到问题。以下示例基于 solution from Calvin Cheung在 StackOvervlow 上。 === multi.csv =
我是一名优秀的程序员,十分优秀!