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
添加回答
舉報