Python 如果字符串匹配,则删除数据帧行

Python 如果字符串匹配,则删除数据帧行,python,pandas,dataframe,Python,Pandas,Dataframe,如果一行不是以LM开头,我想删除它_ 还尝试: def clean_doc (df): for rownum in range(0,df.shape[0]): if "LM_" not in df.iloc[rownum][6]: clean_df = df.drop([df.index[rownum]]) return clean_df 还有更多,但它只删除了我的数据集的一行。。但是它应该更多您可以尝试: df.drop([rownum]) 输出: impo

如果一行不是以LM开头,我想删除它_

还尝试:

def clean_doc (df): 
 for rownum in range(0,df.shape[0]):
    if "LM_" not in df.iloc[rownum][6]:
        clean_df = df.drop([df.index[rownum]])
 return clean_df
还有更多,但它只删除了我的数据集的一行。。但是它应该更多

您可以尝试:

df.drop([rownum]) 
输出:

import pandas as pd

df = pd.DataFrame({'col':['abc', 'LM_abc']})

print(df[df['col'].str.startswith('LM_')])

您的代码只删除了一行,因为每次循环时您都会覆盖clean_df变量。

我想OP需要df[~df[].str.startswith'LM_']来代替。@HenryYik我想恰恰相反,OPs代码是删除不包含LM的行_
import pandas as pd

df = pd.DataFrame({'col':['abc', 'LM_abc']})

print(df[df['col'].str.startswith('LM_')])
      col
1  LM_abc