繁体   English   中英

用其他列的值pandas + python替换字符串的一部分

[英]Replace part of string with a different column's value pandas + python

问题

我有一个CSV文件,里面充满了像这样的数据

 rowid       filepath              curr_time    cameraid    old_cameraid
    0        1/1_20180625_234436.jpg    2018-06-25 23:44:36 1       19
    1        1/1_20180626_005104.jpg    2018-06-26 00:51:04 1       19
    2        1/1_20180626_015735.jpg    2018-06-26 01:57:35 1       19
    3        1/1_20180626_030430.jpg    2018-06-26 03:04:30 1       19
    ...
    2605    2/2_20180622_064322.jpg     2018-06-22 06:43:22 2       64
    2606    2/2_20180622_074326.jpg     2018-06-22 07:43:26 2       64
    2607    2/2_20180622_084332.jpg     2018-06-22 08:43:32 2       64

我想做的事

我想使用old_cameraid字符串值替换文件路径号:

rowid   filepath    curr_time   cameraid    old_cameraid
0       19/19_20180625_234436.jpg       2018-06-25 23:44:36 1    19
...
2605    64/64_20180622_064322.jpg       2018-06-22 06:43:22 2       64

我尝试过的

我试过使用

df.apply(lambda x: x['filepath'].replace('a',x['b']), axis=1)

从这个StackOverflow问题中,但我不是要替换'a',而是要在filepath列中替换一部分字符串。 因此,这是行不通的,我不确定。

我也为行的格式表示歉意。 我试图搜索如何在stackoverflow问题中正确设置行的格式,但找不到正确的信息。

您可以将它们全部加在一起,我假设所有文件路径都具有相同的语法

1 / 1_20180625_234436.jpg

df['filepath'] = df['old_cameraid'].astype(str) + '/' + df['filepath'].astype(str).map(lambda x: x.split('/')[-1])

暂无
暂无

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

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