代码之家  ›  专栏  ›  技术社区  ›  user9431057

Extarct行,直到某一行包含某一列的某个字

  •  1
  • user9431057  · 技术社区  · 7 年前

    我有一个这样的数据框,

       Name    Product    Quantity
    0  NaN     1010       10
    1  NaN     2010       12
    2  NaN     4145       18
    3  NaN     5225       14
    4  Total   6223       16
    5  RRA     7222       18
    6  MLQ     5648       45
    

    Total 那是在 Name

    所需产出:

           Name    Product    Quantity
        0  NaN     1010       10
        1  NaN     2010       12
        2  NaN     4145       18
        3  NaN     5225       14
    

    我试过这个,

    df[df.Name.str.contains("Total", na=False)]
    

    1 回复  |  直到 7 年前
        1
  •  4
  •   anky    7 年前

    选择要显示的索引 True 值的位置和切片使用 df.iloc

    df_new=df.iloc[:df.loc[df.Name.str.contains('Total',na=False)].index[0]]
    

    或使用 series.idxmax() 它允许您获取最大值的索引(真/假的最大值为真):

    df_new=df.iloc[:df.Name.str.contains('Total',na=False).idxmax()]
    
    print(df_new)
    
      Name  Product  Quantity
    0  NaN     1010        10
    1  NaN     2010        12
    2  NaN     4145        18
    3  NaN     5225        14