我有以下输出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
。
摇曳的蔷薇
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 的解决方案涵盖了更多
添加回答
举报
0/150
提交
取消