繁体   English   中英

将字符串拆分为 python 中的列

[英]splitting an string into a column in python

我有一个快速的问题,我有下面的 df

去向

    File_Path
0   /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_INVE_D.sh
1   /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_EMPF_D.sh
2   /data/app_next_best_action/call_nba_as11.sh
3   /data/application/AAIN/aain-srv-motor-extracao-next/iws/call_run_extract_default.sh cdlc_ing
4   sh /data/processos/current/aplicacao/AAVR/ACN10/scr/exec_fim_grupo.sh ACN10_ARQ_1   

我想在 File_Path 列中获取树结构的第 4 项。

output 应如下所示:

去向

    File_Path                                                                                                       Parent_path
0   /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_INVE_D.sh  /data/application/AANX/aanx-dataeng-slas-sysyphus/
1   /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_EMPF_D.sh  /data/application/AANX/aanx-dataeng-slas-sysyphus/
2   /data/app_next_best_action/call_nba_as11.sh                                                                     /data/app_next_best_action/call_nba_as11.sh
3   /data/application/AAIN/aain-srv-motor-extracao-next/iws/call_run_extract_default.sh                             /data/application/AAIN/aain-srv-motor-extracao-next/
4   sh /data/processos/current/aplicacao/AAVR/ACN10/scr/exec_fim_grupo.sh ACN10_ARQ_1                               /data/processos/current/aplicacao/

在 index = 2 中,没有第 4 项,因此它获取最后一项,即文件 call_nba_as11.sh

同样在 index=4 中,file_path 值的开头有一个“sh”,我需要转义它

大家可以帮帮我吗?

您可以将正则表达式与str.extract一起使用:

df['Parent_path'] = df['File_Path'].str.extract(r'^((?:/[^/]+){,4}/?)')

output:

                                                                                                        File_Path                                           Parent_path
0  /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_INVE_D.sh    /data/application/AANX/aanx-dataeng-slas-sysyphus/
1  /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_EMPF_D.sh    /data/application/AANX/aanx-dataeng-slas-sysyphus/
2                                                                     /data/app_next_best_action/call_nba_as11.sh           /data/app_next_best_action/call_nba_as11.sh
3                    /data/application/AAIN/aain-srv-motor-extracao-next/iws/call_run_extract_default.sh cdlc_ing  /data/application/AAIN/aain-srv-motor-extracao-next/

正则表达式演示

选择:

df['Parent_path'] = df['File_Path'].str.extract(r'^[^/]*((?:/[^/]+){,4}/?)')

Output:

                                                                                                        File_Path                                           Parent_path
0  /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_INVE_D.sh    /data/application/AANX/aanx-dataeng-slas-sysyphus/
1  /data/application/AANX/aanx-dataeng-slas-sysyphus/scripts/s_shell/call_iws/call_PP_NEXT_RTBA_MAU_IND_EMPF_D.sh    /data/application/AANX/aanx-dataeng-slas-sysyphus/
2                                                                     /data/app_next_best_action/call_nba_as11.sh           /data/app_next_best_action/call_nba_as11.sh
3                    /data/application/AAIN/aain-srv-motor-extracao-next/iws/call_run_extract_default.sh cdlc_ing  /data/application/AAIN/aain-srv-motor-extracao-next/
4                               sh /data/processos/current/aplicacao/AAVR/ACN10/scr/exec_fim_grupo.sh ACN10_ARQ_1                    /data/processos/current/aplicacao/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM