【问题标题】:Antijoining in Multi-Index Python多索引 Python 中的反连接
【发布时间】:2018-05-02 09:07:58
【问题描述】:

我想在多索引数组中调用满足特定条件的 id,

id day sum
x1 Sunday 37
x2 Friday 183
----------Thursday 61
----------Wednesday 28
x3 Friday 32

所需输出:
id day sum
x2 Friday 183
----------Thursday 61
----------Wednesday 28
x3 Friday 32

如果我申请pd.xs('Sunday', level='call_day'),我只能返回正好是星期日的值。
我想返回所有具有星期日或任何其他附加值的值,例如 - 星期五和星期三,在这种情况下输出将是,
id day sum
x2 Friday 183
----------Thursday 61
----------Wednesday 28

【问题讨论】:

    标签: python pandas multi-index


    【解决方案1】:

    您可以将boolean indexing 用于第一级id 的所有值,然后通过loc 选择:

    i = df[df.index.get_level_values('day') == 'Friday'].index.get_level_values('id').tolist()
    print (i)
    ['x2', 'x3']
    

    另一种解决方案:

    df1 = df.reset_index()
    i = df1.loc[df1['day'] == 'Friday', 'id']
    

    df = df.loc[i]
    print (df)
                  sum
    id day           
    x2 Friday     183
       Thursday    61
       Wednesday   28
    x3 Friday      32
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 2019-12-13
      • 2021-11-13
      • 2023-01-25
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多