首页 > 解决方案 > 如何根据与行索引对应的列表获取数据帧的子集?

问题描述

我有一个看起来像这样的熊猫数据框:

row|a|b|
0 |1|2
1 |2|0
2 |1|1
3 |3|2
4 |1|1
5 |1|0

我想获得每列的平均值,但仅适用于第 1、3、4 行,然后与第 0、2、5 行的平均值进行比较。索引存储在一个 numpy 数组keep = np.array([1,3,4])take = np.array([0,2,5]). 理想的输出是一个数组或数据框,如下所示:

keep |2|1
take |1|1

有谁知道如何做到这一点?

标签: pythonpandasdataframerow

解决方案


连接怎么样:

pd.concat({'keep':df.iloc[keep].mean(), 
           'take':df.iloc[take].mean()}
         ).unstack()

输出:

        a    b
keep  2.0  1.0
take  1.0  1.0

推荐阅读