当特定列值具有该值时,我想在pandas数据框上删除其余行。
例如,如果col1的值为“ FEB”,则删除剩余的所有行,包括该行。
代码:
df = pd.read_excel(path, usecols=range(32, 89), skiprows=9).dropna(how='all')
答案 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]