我已将数据转换如下:
s1 = pd.DataFrame({'soa': [500, -500, -500, -500, 500, 500],
'congruent': [True, True, True, False, False, False],
'is_correct': [True, True, False, False, False, False],
'some_stuff': pd.np.random.rand(6)})
subdf = s1[['congruent', 'soa', 'is_correct']] # s1 is a DataFrame
m = subdf.groupby(('soa', 'congruent')).mean()
在ipython笔记本中显示m
给了我一个非常好的表:
我现在想绘制两条单独的曲线,每条曲线有两个点(-500和500)。一条曲线将是congruent == True
的条件,另一条曲线是congruent == False
的条件。
我尝试了m.plot()
,但我得到一条曲线,每个多索引元组都有一个点:
了解熊猫,我怀疑有一种简单的方法可以解决这个问题 - 任何想法?
提前致谢!
答案 0 :(得分:0)
好的,经过相当多的讨论后,我有一个解决方案可以做我想要的,虽然我不太明白 它是如何工作的......
s1 = pd.DataFrame({'soa': [500, -500, -500, -500, 500, 500],
'congruent': [True, True, True, False, False, False],
'is_correct': [True, True, False, False, False, False],
'some_stuff': pd.np.random.rand(6)})
subdf = s1[['congruent', 'soa', 'is_correct']] # s1 is a DataFrame
m = subdf.groupby(('soa', 'congruent')).mean()
m.unstack(level=1)
m.unstack(level=1).plot()
结果显示如下:
枢轴操作仍然让我感到困惑,所以如果有人可以直截了当地说明为什么level=1
是正确的论点,我会非常感激。我可以说,level
意味着类似将此层次索引级别设置为表格标题。