Удалите все символы перед конвейером, а также удалите трубу, используя регулярное выражение в python - PullRequest
1 голос
/ 09 января 2020

Привет, я на работе и работаю в pandas и пытаюсь удалить все символы перед этим каналом в этом CSV-файле. Также было бы очень полезно заменить точку с запятой на трубу.

Size| Medium; Large; Xlarge; 2Xlarge; 3Xlarge; 4Xlarge; 5xXlarge; 
Size| Medium; Large; Xlarge; 2Xlarge; 3Xlarge; 4Xlarge; 5xlarge; 
Sizes| Small - ( only one mic tab); Medium; Large; Xlarge; 2Xlarge; 3Xlarge; 4Xlarge; 5Xlarge; 
Sizes| Small - ( only one mic tab); Medium; Large; Xlarge; 2Xlarge; 3Xlarge; 4Xlarge; 5Xlarge; 

Вот то, что я пытался, но у меня проблемы с выходом из трубы.

df['Variations'] = df['Variations'].replace(regex=r'/\|$', value='')

Мне нужно получить это

Medium|Large|Xlarge|2Xlarge|3Xlarge|4Xlarge|5xXlarge 
Medium|Large|Xlarge|2Xlarge|3Xlarge|4Xlarge|5xlarge

1 Ответ

1 голос
/ 09 января 2020

Вы можете использовать

data['Variations'] = data['Variations'].str.replace(r'^[^|]*\|\s*|;\s*$', '').str.replace('\s*;\s*', '|')

. .replace(r'^[^|]*\|\s*|;\s*$', '') удалит все подстроки от начала строки до первого |, включая его, а также все последующие символы пробела и финальный ; (с любым 0+ пробел в конце) и .replace('\s*;\s*', '|') заменит все ; любыми пробелами вокруг точки с запятой с символом трубы.

...