pandas dataframe-根据特定的列值删除剩余的行

时间:2019-06-14 13:53:07

标签: pandas

当特定列值具有该值时,我想在pandas数据框上删除其余行。

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

代码:

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

3 个答案:

答案 0 :(得分:1)

您使用argmax

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

答案 1 :(得分:1)

您还可以使用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

答案 2 :(得分:0)

尝试取反(〜)运算符:

df=df[~df['col1'].str.match('FEB')]

要选择号码,您可以直接使用:

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