Вы можете в значительной степени использовать split () как df.col.str.split('via|on',expand=True)[[0,2]
:
. Подробнее ........
Воспроизведение вашего DataFrame:
>>> df
col
0 Other via Other on 17 Jan 2019
1 Other via Other on 17 Jan 2019
2 Interview via E-mail on 14 Dec 2018
3 Rejected via E-mail on 15 Jan 2019
4 Rejected via E-mail on 15 Jan 2019
5 Rejected via E-mail on 15 Jan 2019
6 Rejected via E-mail on 15 Jan 2019
7 Interview via E-mail on 14 Jan 2019
8 Rejected via Website on 12 Jan 2019
Давайте рассмотрим здесь Сначала разбейте весь столбец на основе необходимых нам строк via
и on
, которые разделят весь столбец col
на три отдельных разделенных столбца 0 1 2
, где 0
будет перед строкой via
& amp; 2
будет после строки on
, а остальные будут посередине, это столбец 1
, который нам не нужен.
Итак, мы можем взять на себя свободу и выбрать только столбцы 0
& amp; 2
следующим образом.
>>> df.col.str.split('via|on',expand=True)[[0,2]]
0 2
0 Other 17 Jan 2019
1 Other 17 Jan 2019
2 Interview 14 Dec 2018
3 Rejected 15 Jan 2019
4 Rejected 15 Jan 2019
5 Rejected 15 Jan 2019
6 Rejected 15 Jan 2019
7 Interview 14 Jan 2019
8 Rejected 12 Jan 2019
Лучше назначить новый фрейм данных и переименовать столбцы:
Результат:
newdf = df.col.str.split('via|on',expand=True)[[0,2]]
newdf.rename(columns={0: 'col1', 2: 'col2'}, inplace=True)
print(newdf)
col1 col2
0 Other 17 Jan 2019
1 Other 17 Jan 2019
2 Interview 14 Dec 2018
3 Rejected 15 Jan 2019
4 Rejected 15 Jan 2019
5 Rejected 15 Jan 2019
6 Rejected 15 Jan 2019
7 Interview 14 Jan 2019
8 Rejected 12 Jan 2019
Поместите umask в неинтерактивный запуск оболочки (.bash_profile
, .zshenv
, .tcshrc
в зависимости от Вашей оболочки). Затем это будет работать за сессиями невхода в систему.
Если Вы хотите влиять на целую систему, можно также поместить ее в/etc/profile