Python 提取字符串

Kar*_*a_X 7 python string extract pandas

我有一个数据框,其中字符串格式的列之一如下所示

    filename
 0  Machine02-2022-01-28_00-21-45.blf.424
 1  Machine02-2022-01-28_00-21-45.blf.425
 2  Machine02-2022-01-28_00-21-45.blf.426
 3  Machine02-2022-01-28_00-21-45.blf.427
 4  Machine02-2022-01-28_00-21-45.blf.428
Run Code Online (Sandbox Code Playgroud)

我希望我的专栏看起来像这样

      filename
 0    2022-01-28 00-21-45 424
 1    2022-01-28 00-21-45 425
 2    2022-01-28 00-21-45 426
 3    2022-01-28 00-21-45 427
 4    2022-01-28 00-21-45 428
Run Code Online (Sandbox Code Playgroud)

我试过这段代码

df['filename'] = df['filename'].str.extract(r"(\d{4}-\d{1,2}-\d{1,2})_(\d{2}-\d{2}-\d{2}).*\.(\d+)", r"\1 \2 \3")
Run Code Online (Sandbox Code Playgroud)

我收到此错误,& 的操作数类型不受支持:“str”和“int”。
谁能告诉我我做错了什么?

Cor*_*ien 5

使用str.replace和 add.*-删除字符串,例如Machine02-

df['filename'] = df['filename'].str.replace(r".*-(\d{4}-\d{1,2}-\d{1,2})_(\d{2}-\d{2}-\d{2}).*\.(\d+)", r"\1 \2 \3")
print(df)

# Output
                  filename
0  2022-01-28 00-21-45 424
1  2022-01-28 00-21-45 425
2  2022-01-28 00-21-45 426
3  2022-01-28 00-21-45 427
4  2022-01-28 00-21-45 428
Run Code Online (Sandbox Code Playgroud)


小智 4

请尝试这个:

df['filename'] = df['filename'].str.split('-',1).apply(lambda x:' '.join(x[1].split('_')).replace('.blf.',' '))
Run Code Online (Sandbox Code Playgroud)