Вы можете использовать понимание списка:
df3["filename"] = ['.'.join(i) for i in
zip(df3["job_number"].map(str),df3["task_number"].map(str))]
Если использовать python 3.6+, самое быстрое решение с f-string
с:
df3["filename2"] = [f'{i}.{j}' for i,j in zip(df3["job_number"],df3["task_number"])]
Производительность в 30 тыс. Строк:
[ 112]In [66]: %%timeit
...: df3["filename4"] = df3.T.apply(lambda x: str(x[0]) + '.' + str(x[1]))
...:
1.7 s ± 31.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [67]: %%timeit
...: df3['dummy'] ='.'
...: res = df3['job_number'].values.astype(str) + df3['dummy'] + df3['task_number'].values.astype(str)
...: df3.drop(columns=['dummy'], inplace=True)
...:
73.6 ms ± 1.23 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
Но оригинальное решение также очень быстрое:
In [73]: %%timeit
...: df3['filename'] = df3['job_number'].astype(str) + '.' + df3['task_number'].astype(str)
48.3 ms ± 872 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
С небольшой модификацией - вместо astype
используется [118]:
In [76]: %%timeit
...: df3['filename'] = df3['job_number'].map(str) + '.' + df3['task_number'].map(str)
...:
26 ms ± 676 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Проверьте эту страницу, которая имеет довольно легкое для доведения до конца обхода ветвления и слияния в CVS
http://kb.wisc.edu/middleware/page.php?id=4087
, Это также включает пример замены ГОЛОВЫ с указанным ответвлением
Тег конец ответвления
cvs tag merge_NEW_BRANCH
Переключатель назад к ответвлению, которое Вы заменяете
Для заголовка:
cvs up -A
Для ветвления:
cvs up -r OLD_BRANCH
Делают замену:
голова Замены
cvs up -jHEAD -j NEW_BRANCH
ответвление Замены
cvs up -jOLD_BRANCH -j NEW_BRANCH
изменения Фиксации и тег, если Вы должны.