我有一个包含用户数据的数据帧。有一列包含用户访问过的文件名。文件名如下所示:
blah-blah-blah/dss_outline.pdf
doot-doot/helper_doc.pdf
blah-blah-blah/help_file.pdf
我的目标是去掉后面的所有内容,包括/这样我就可以查看人们正在检查的顶级程序(许多不同的文件都是在这些程序下组织的)。你知道吗
所以,我面临两个挑战:
1-如何“抓住”到“/”的所有东西?我一直在看regex,但是我很难写出正确的表达式。你知道吗
2-如何用连接的文件名替换所有文件名?我发现我可以使用df['Filename'] = df['Filename'].str.split('/')[0]
来获取适当的部分,但它不会应用于series对象。这就是我想做的逻辑,但我不知道怎么做。你知道吗
谢谢
你手头有很多解决方案:
1) 仅使用
split()
方法:名称:col1,数据类型:object
2) 您可以使用
apply()
+split()
3) 您可以使用
rsplit()
+str[0]
去除所需的:4) 您可以将本机正则表达式与
extract()
一起使用:您可以使用
\/.*$
匹配不需要的部分并将其删除:DEMO这将匹配一个正斜杠和后面的任何字符,直到字符串的结尾(如果引擎需要,请小心使用多行标志!)。你知道吗
或者您可以使用
^[^/]+
匹配所需的部分并提取它:DEMO它匹配字符串开头的
/
以外的任何连续字符(同样,需要多行!)。你知道吗使用
series.apply()
:代码:
相关问题 更多 >
编程相关推荐