gpt4 book ai didi

python - 如何在第二级具有可变长度的MultiIndex DataFrame中获取第二级的所有最后一行

转载 作者:行者123 更新时间:2023-12-04 07:14:49 25 4
gpt4 key购买 nike

我有这个数据框:

df = pd.DataFrame({
'thread_id': [0,0,1,1,1,2,2],
'message_id_in_thread': [0,1,0,1,2,0,1],
'text': ['txt0', 'txt1', 'txt2', 'txt3', 'txt4', 'txt5', 'txt6']
}).set_index(['thread_id', 'message_id_in_thread'])
enter image description here
我想保留所有最后的第二级行,这意味着:
  • 对于 thread_id==0我想保留该行 message_id_in_thread==1
  • 对于 thread_id==1我想保留该行 message_id_in_thread==2
  • 对于 thread_id==2我想保留该行 message_id_in_thread==1

  • 这可以通过执行 df.iterrows() 轻松实现,但我想知道是否有任何直接索引方法。
    我在寻找类似 df.loc[(:, -1)] 的东西,从所有( : )级别 1 组中选择该块/组的最后( -1 )行,但显然这不起作用。

    最佳答案

    如果需要两个级别,请使用 GroupBy.tail :

    df = df.groupby(level=0).tail(1)
    print (df)
    text
    thread_id message_id_in_thread
    0 1 txt1
    1 2 txt4
    2 1 txt6
    如果只需要一级使用 GroupBy.last GroupBy.nth :
    df = df.groupby(level=0).last()
    #df = df.groupby(level=0).nth(-1)
    print (df)
    text
    thread_id
    0 txt1
    1 txt4
    2 txt6

    关于python - 如何在第二级具有可变长度的MultiIndex DataFrame中获取第二级的所有最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68829952/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com