使用一个索引和一个列值在多索引数据框中设置列值

时间:2015-06-09 04:46:43

标签: python pandas

我有一个Pandas框架,有两级索引。

                            Class     Score     Mean
Date        Student
2000-01-01  'John Smith'      'A'      92        None
            'Jane Smith'      'A'      82        None
2000-03-01  'John Smith'      'B'      72        None
            'Jane Smith'      'A'      89        None
            'Blackbeard'      'B'      62        None

我想比较每个学生相对于平均水平的表现。我有一个单独的函数,它读取给定日期每个类的平均值。

即。对于2000-03-01,我有类似的事情:

Class Mean
 'A'   72
 'B'   68
 'C'   70

所以我想要做的是为索引为2000-03-01且类别为' B'的所有条目设置平均值列。 68。

如果没有分层索引,这将非常简单

df.loc[df.['Class'] == 'A'] = 68.

我能弄清楚的是如何使用多索引进行等效操作。

2 个答案:

答案 0 :(得分:1)

如果设置df = df.reset_index(),它会将您的多索引转换为常规列。

答案 1 :(得分:1)

首先,将 public GameView(Context context, AttributeSet attrs) { super(context, attrs); requestFocus(); Drawable mDrawableBg = getResources().getDrawable(R.drawable.lib_bg); //noinspection deprecation setBackgroundDrawable(mDrawableBg); mBmpPlayer1 = getResBitmap(R.drawable.lib_cross); mBmpPlayer2 = getResBitmap(R.drawable.lib_circle); 列切出数据框。然后使用布尔索引来选择所需的行。

"Mean"

在这种情况下,索引无关紧要。