Заменить часть строки другим значением столбца pandas + python

1

Эта проблема

У меня есть 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)

из этого qaru.site/questions/6157236/... но я не заменяю 'a', а вместо этого часть строки в столбце пути к файлу. Поэтому это не сработало, и я не уверен.

Я также извиняюсь за форматирование строк. Я попытался найти, как правильно форматировать строки в вопросе stackoverflow, но не смог найти правильную информацию.

  • 0
    У вас есть больше информации о начальном форматировании столбца filepath? В частности, всегда ли это '#/#_...' , где '#' - однозначное число?
  • 0
    Это не всегда однозначное число, но оно всегда совпадает с номером в «cameraid». Я хочу заменить его на номер в "old_cameraid"
Теги:
pandas
csv

1 ответ

2
Лучший ответ

Вы можете добавить их все вместе, я предположил, что весь путь к файлу имеет тот же синтаксис

1/1_20180625_234436.jpg

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню