删除不以特定单词开头/不包含特定单词的行

我有以下输出


Age

'1 year old',

'14 years old', 

'music store', 

'7 years old ',

'16 years old ',

使用这行代码后创建


df['Age']=df['Age'].str.split('.', expand=True,n=0)[0]

df['Age'].tolist()

我想从数据集中删除不以数字或数字 + 年 + 旧或数字 + 年 + 旧开头的行(最好使用它的副本或过滤后的新行)。


预期产出


Age (in a new dataset filtered)

'1 year old',

'14 years old', 

'7 years old ',

'16 years old ',

我怎么办?


蛊毒传说
浏览 67回答 2
2回答

红糖糍粑

使用Series.str.contains并创建一个布尔掩码来过滤数据框:m = df['Age'].str.contains(r'(?i)^\d+\syears?\sold')df1 = df[m]结果:# print(df1)             Age0     1 year old1   14 years old 3    7 years old4   16 years old您可以测试正则表达式模式here。

摇曳的蔷薇

下面的代码查找以撇号开头、后跟数字的文本,并仅保留这些行:df = pd.read_clipboard(sep=';')df.loc[df.Age.str.match("\'\d+")]            Age0   '1 year old',1   '14 years old',3   '7 years old ',4   '16 years old ',请注意,这仅限于撇号和数字,@Shubham 的解决方案涵盖了更多
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python