挤出行,直到具有特定列熊猫字的特定行

时间:2019-01-27 16:35:17

标签: python-3.x pandas dataframe

我有一个这样的数据框,

   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 个答案:

答案 0 :(得分:4)

选择True值所在的索引并使用df.iloc进行切片:

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

或使用series.idxmax()来获得最大值的索引(True / False的最大值为True):

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