Pandas dataframe-基于特定列值删除剩余行
我想在特定列值具有该值时删除dataframe上的剩余行 例如,如果col1的值为“FEB”,则删除包括该行在内的其余所有行 代码: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
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
添加一个小示例数据框。添加一个小示例数据框。