提取行直到具有列 Pandas 的特定单词的特定行

use*_*057 2 dataframe python-3.x pandas

我有一个这样的数据框,

   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
Run Code Online (Sandbox Code Playgroud)

现在,我需要提取包含行的行/新数据框,直到Total该行位于列中Name

所需输出:

       Name    Product    Quantity
    0  NaN     1010       10
    1  NaN     2010       12
    2  NaN     4145       18
    3  NaN     5225       14
Run Code Online (Sandbox Code Playgroud)

我试过这个,

df[df.Name.str.contains("Total", na=False)]
Run Code Online (Sandbox Code Playgroud)

目前这没有帮助。任何建议都会很棒。

ank*_*_91 6

选择值所在的索引True并使用以下命令进行切片df.iloc

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

或使用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
Run Code Online (Sandbox Code Playgroud)