我有一个带有 MultiIndex 的数据框。这是一个最小的工作示例:
df = pd.DataFrame({'note':[1,1,1,2,2,2,2],'t': [0.5,0.7,1.2,0.3,0.9,1.3,1.7],'val':[1,-1,0,0,1,0,0]})
dfs = df.set_index(['note','t'])
这使
>>> dfs
val
note t
1 0.5 1
0.7 -1
1.2 0
2 0.3 0
0.9 1
1.3 0
1.7 0
我想要的是获得(a)最小值和(b)t每组索引中的第一个值:
note min first
1 0.5 0.5
2 0.3 0.3
我可以对原始数据框进行分组df,其中note和t是列而不是索引:
df.groupby('note').agg({'t': [min, lambda x: list(x)[0]]})
但我宁愿不执行reset_index()另一个set_index()将数据帧恢复到 MultiIndex 版本的操作。我该怎么做呢?该agg函数仅适用于列,而不适用于索引。
开满天机
杨魅力
相关分类