Полагаю, у вас нет разделителей \ или / в конце ваших значений, поэтому, если нет, вы адаптируете решение:
import pandas as pd
import shutil
def move(src, dest):
shutil.move(src, dest)
df = pd.DataFrame({'doc_id': [1, 2, 3,4,5,6,7,8],
'paths': ['path1', 'path2', 'path3', 'path4', 'path5', 'path6', 'path7', 'path8'],
'colA': ['value1', 'value2', 'value3', 'value1', 'value2', 'value3', 'value1', 'value2'],
'colB': ['value8', 'value9', 'value10', 'value11', 'value12', 'value13', 'value14', 'value15'],
'colC': ['othervalues1', 'othervalues2', 'othervalues3', 'othervalues4', 'othervalues5', 'othervalues6', 'othervalues7', 'othervalues8']
})
#you could use '\\' or '/' for delimiting folder, move calls shutil.move
df.apply(lambda row: move(row['paths'] + '\\doc' + str(row['doc_id']),
row['colA'] + '\\' + row['colB'] + '\\' + row['colC'] + '\\' + 'doc' + str(row['doc_id'])), axis=1)