0

当特定列值具有该值时,我想删除熊猫数据框中的剩余行。

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

代码:

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

3 回答 3

1

在你的情况下使用argmax

yourdf=df.iloc[:df.col1.eq('FEB').values.argmax(),:].copy()
于 2019-06-14T14:11:28.537 回答
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
于 2019-06-14T14:23:50.630 回答
0

尝试反转 (~) 运算符:

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

要选择数字,您可以直接使用:

new_dataframe=df[df.col1 != #put number here] 
于 2019-06-14T14:16:10.077 回答