Эта проблема
У меня есть 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, но не смог найти правильную информацию.
Вы можете добавить их все вместе, я предположил, что весь путь к файлу имеет тот же синтаксис
1/1_20180625_234436.jpg
df['filepath'] = df['old_cameraid'].astype(str) + '/' + df['filepath'].astype(str).map(lambda x: x.split('/')[-1])
'#/#_...'
, где'#'
- однозначное число?