感谢对我最初问题的回复,我现在拥有了一个我想要的多索引 DataFrame。现在我在数据结构中拥有了数据,我正在尝试将其取出并想知道是否有更好的方法来做到这一点。我的两个问题是相关的,但可能有单独的“理想”解决方案:
示例数据帧(截断)
Experiment IWWGCW IWWGDW
Lead Time 24 48 24 48
2010-11-27 12:00:00 0.997 0.991 0.998 0.990
2010-11-28 12:00:00 0.998 0.987 0.997 0.990
2010-11-29 12:00:00 0.997 0.992 0.997 0.992
2010-11-30 12:00:00 0.997 0.987 0.997 0.987
2010-12-01 12:00:00 0.996 0.986 0.996 0.986
迭代
我希望能够在这个 DataFrame 上循环,其中迭代只会让我降低 1 个索引维度,即iteritems
返回[('IWWGCW', df['IWWGCW']), ('IWWGDW', df['IWWGDW'])]
并产生 2 个带有 Lead Time 列的 DataFrames 的行为。我的蛮力解决方案是使用基本上可以执行的包装程序[(key, df[key] for key in df.columns.levels[0]]
。有一个更好的方法吗?
申请
我还想做一些事情,比如“从其他人那里减去 IWWGDW 条目”来计算成对差异。我试着去做,df.apply(lambda f: f - df['IWWGDW'])
但KeyError: ('IWWGDW', 'occurred at index 2010-11-26 12:00:00')
不管我是否使用axis=1
or axis=0
。我已经尝试使用上面确定的迭代解决方法重建一个新的 DataFrame,但是当我暴力破解时我总是担心。有没有更“熊猫”的方式来做这种计算?