Использовать модуль re
( regex101 ):
txt = '''ID|Name|Email|Country|Quantity
2|name2|name@email.com|UK|8
3|name3|name@email.com
|UK|8
5|name4|name@email.com
|UK|8
7|name5|name@email.com|UK|8'''
import re
txt = re.sub(r'\n\|', '|', txt)
print(txt)
Печать:
ID|Name|Email|Country|Quantity
2|name2|name@email.com|UK|8
3|name3|name@email.com|UK|8
5|name4|name@email.com|UK|8
7|name5|name@email.com|UK|8
Загружать как pandas DataFrame:
df = pd.read_csv(StringIO(txt), sep='|')
print(df)
Отпечатки:
ID Name Email Country Quantity
0 2 name2 name@email.com UK 8
1 3 name3 name@email.com UK 8
2 5 name4 name@email.com UK 8
3 7 name5 name@email.com UK 8
РЕДАКТИРОВАТЬ: Для чтения из файла вы можете использовать:
import re
import sys
import pandas as pd
if sys.version_info[0] == 2: # Not named on 2.6
from StringIO import StringIO
else:
from io import StringIO
with open('dummy.txt', 'r') as f_in:
txt = f_in.read()
txt = re.sub(r'\n\|', '|', txt)
df = pd.read_csv(StringIO(txt), sep='|')
print(df) # or 'print df' in Python2
Отпечатки:
ID Name Email Country Quantity
0 2 name2 name@email.com UK 8
1 3 name3 name@email.com UK 8
2 5 name4 name@email.com UK 8
3 7 name5 name@email.com UK 8