2024-09-30 04:28:39 发布
网友
Dataframe Ticket Job RQ01 obe_fin_r3_003 RQ02 ouk_log_r3_002_am My Objective
它将从作业列中提取fin、日志并创建一个新的
My Code df['job_type'] = df.short_description.str.findall(r'(\_\w+)').str[0]
这没有给出所需的输出,请建议使用正则表达式
如果要匹配第一个下划线后的单词字符,则必须排除与_本身匹配的字符,该字符本身也与\w匹配
_
\w
[^\W_]+_([^\W_]+)
解释
[^\W_]+
([^\W_]+)
使用str.extract将从正则表达式的第一个匹配中提取组
import pandas as pd strings = [ ["RQ01", "obe_fin_r3_003"], ["RQ01", "ouk_log_r3_002_am"] ] df = pd.DataFrame(data=strings, columns=["Ticket", "Job"]) df["job_type"] = df["Job"].str.extract(r'[^\W_]+_([^\W_]+)') print(df)
输出
Ticket Job job_type 0 RQ01 obe_fin_r3_003 fin 1 RQ01 ouk_log_r3_002_am log
您可以使用正则表达式,但始终可以使用.str.split():
.str.split()
df['New'] = df['Job'].str.split('_').str[1]
这将产生:
Ticket Job New 0 RQ01 obe_fin_r3_003 fin 1 RQ02 ouk_log_r3_002_am log
有了正则表达式,你可以试试这个
r'\_([a-z]+)\_'
如果要匹配第一个下划线后的单词字符,则必须排除与
_
本身匹配的字符,该字符本身也与\w
匹配解释
[^\W_]+
匹配除_
之外的1+字字符_
匹配_
([^\W_]+)
捕获组1中不带下划线的匹配1+字字符使用str.extract将从正则表达式的第一个匹配中提取组
输出
您可以使用正则表达式,但始终可以使用
.str.split()
:这将产生:
有了正则表达式,你可以试试这个
相关问题 更多 >
编程相关推荐