2 回答

TA贡献1786条经验 获得超13个赞
这是可能的,但不是很干净:
df = (dfs.index.get_level_values(1).to_series()
.groupby(dfs.index.get_level_values(0))
.agg(['min', 'first']))
print (df)
min first
note
1 0.5 0.5
2 0.3 0.3
df = dfs.reset_index('t').groupby(level=0)['t'].agg(['min', 'first'])
print (df)
min first
note
1 0.5 0.5
2 0.3 0.3

TA贡献1811条经验 获得超6个赞
您可以直接在多索引上工作。用于to_series转换dfs.index为一系列多索引和元组值。接下来,切片以获取元组值的最后一个元素。之后就做groupby和level=0喜欢agg常规专栏
dfs.index.to_series().str[-1].groupby(level=0).agg(['min', 'first'])
Out[463]:
min first
note
1 0.5 0.5
2 0.3 0.3
添加回答
举报