我有一个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.
我能弄清楚的是如何使用多索引进行等效操作。
答案 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"
在这种情况下,索引无关紧要。