这是我的数据框:
import pandas as pd
data = {'Period':['Group 1 vs Group 2:Change at 3 mo', 'Group 1:Change at 3 mo', 'Group 1 vs Group 2:Change at 3 mo', 'Group 2:Change at 3 mo'], 'estimate':[20, 21, 19, 18]}
df = pd.DataFrame(data)
现在,我只需要获取变量Period
中的行不包含的行Group 1 vs Group 2
。我尝试了这段代码:
df = df.loc[df['Period'].str.contains(pat = '(?!Group 1 vs Group 2)', regex = True)].reset_index(drop=True)
但是它不过滤行,因此我得到了原始df。如何解决我的代码,以便仅获取变量Period
不包含任何地方Group 1 vs Group 2
的行?
答案 0 :(得分:2)
您可以尝试str.match
df[~df.Period.str.match('Group 1 vs Group 2')]
Out[85]:
Period estimate
1 Group 1:Change at 3 mo 21
3 Group 2:Change at 3 mo 18