为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2022-12-27 15:36:39
我有以下输出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 ',我怎么办?
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

使用Series.str.contains并创建一个布尔掩码来过滤数据框:


m = df['Age'].str.contains(r'(?i)^\d+\syears?\sold')

df1 = df[m]

结果:


# print(df1)

             Age

0     1 year old

1   14 years old 

3    7 years old

4   16 years old

您可以测试正则表达式模式here



查看完整回答
反对 回复 2022-12-27
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

下面的代码查找以撇号开头、后跟数字的文本,并仅保留这些行:


df = pd.read_clipboard(sep=';')



df.loc[df.Age.str.match("\'\d+")]


            Age

0   '1 year old',

1   '14 years old',

3   '7 years old ',

4   '16 years old ',

请注意,这仅限于撇号和数字,@Shubham 的解决方案涵盖了更多


查看完整回答
反对 回复 2022-12-27
  • 2 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信