Pandas dataframe-基于特定列值删除剩余行

Pandas dataframe-基于特定列值删除剩余行,pandas,Pandas,我想在特定列值具有该值时删除dataframe上的剩余行 例如,如果col1的值为“FEB”,则删除包括该行在内的其余所有行 代码: df = pd.read_excel(path, usecols=range(32, 89), skiprows=9).dropna(how='all') 在您的情况下,使用argmax yourdf=df.iloc[:df.col1.eq('FEB').values.argmax(),:].copy() 在您的情况下,使用argmax yourdf=df.i

我想在特定列值具有该值时删除dataframe上的剩余行

例如,如果col1的值为“FEB”,则删除包括该行在内的其余所有行

代码:

df = pd.read_excel(path, usecols=range(32, 89), skiprows=9).dropna(how='all')

在您的情况下,使用
argmax

yourdf=df.iloc[:df.col1.eq('FEB').values.argmax(),:].copy()

在您的情况下,使用
argmax

yourdf=df.iloc[:df.col1.eq('FEB').values.argmax(),:].copy()
请尝试反转(~)运算符:

df=df[~df['col1'].str.match('FEB')]
要选择数字,您可以直接使用:

new_dataframe=df[df.col1 != #put number here] 
请尝试反转(~)运算符:

df=df[~df['col1'].str.match('FEB')]
要选择数字,您可以直接使用:

new_dataframe=df[df.col1 != #put number here] 

您还可以使用
cumsum

df = df[df['col1'].eq('FEB').cumsum().eq(0)]
测试数据:

df = pd.DataFrame({'col1': ['JAN', 'MAY', 'FEB', 'JAN', 'FEB'],
                   'col2': [1,2,3,4,5]}) 

  col1  col2
0  JAN     1
1  MAY     2
2  FEB     3
3  JAN     4
4  FEB     5
输出:

    col1    col2
0   JAN     1
1   MAY     2

您还可以使用
cumsum

df = df[df['col1'].eq('FEB').cumsum().eq(0)]
测试数据:

df = pd.DataFrame({'col1': ['JAN', 'MAY', 'FEB', 'JAN', 'FEB'],
                   'col2': [1,2,3,4,5]}) 

  col1  col2
0  JAN     1
1  MAY     2
2  FEB     3
3  JAN     4
4  FEB     5
输出:

    col1    col2
0   JAN     1
1   MAY     2

添加一个小示例数据框。添加一个小示例数据框。