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”。
谁能告诉我我做错了什么?
使用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)