我有一个pandas数据框,它是从CSV读取的,CSV包含计算机的主机名,包括它们所属的域以及一系列其他列。我试图去掉域信息,这样我就只剩下主机名了
数据帧示例:
name
domain1\computername1
domain1\computername45
dmain3\servername1
dmain3\computername3
domain1\servername64
....
我已经尝试使用str.strip()和str.replace()与正则表达式以及字符串文字一起使用,但是我似乎无法正确地定位域信息
到目前为止我尝试过的例子:
df['name'].str.strip('.*\\')
df['name'].str.replace('.*\\', '', regex = True)
df['name'].str.replace(r'[.*\\]', '', regex = True)
df['name'].str.replace('domain1\\\\', '', regex = False)
df['name'].str.replace('dmain3\\\\', '', regex = False)
当我使用logging.debug(df)
吐出数据帧时,所有这些似乎都没有做任何更改
您已经接近答案,只需使用:
它只是使用您尝试过的代码之一中的r-string进行添加
在这里不使用r-string,该字符串相当于
.*\\
,它将被解释为最后一个正则表达式中的一个\
。但是,使用r-string时,字符串将变成'.*\\\\'
,每对\\
将最终解释为一个\
,最终结果将变成您期望的两个斜杠输出:
您可以使用
.str.split
:印刷品:
没有使用
ntpath.basename
的正则表达式方法:结果:
computername1
与
rsplit
一起:相关问题 更多 >
编程相关推荐