Основываясь на двух предоставленных вами строках, есть опция, в которой текстовый файл считывается в объект Series
, а затем извлекается регулярное выражение через Series.str.extract()
, чтобы получить необходимую информацию в DataFrame
:
with open('so.txt') as f:
contents = f.readlines()
s = pd.Series(contents)
s
теперь выглядит следующим образом:
0 header1, header2, header3,header4\n
1 \n
2 2001-01-01,123456,"abc def",V4\n
3 \n
4 2001-01-02,789012,"ghi "jklm" n,op",V4
Теперь вы можете использовать извлечение регулярных выражений, чтобы получить то, что вы хотите, в DataFrame
:
df = s.str.extract('^([0-9]{4}-[0-9]{2}-[0-9]{2}),([0-9]+),(.+),(\w{2})$')
# remove empty rows
df = df.dropna(how='all')
df
выглядит следующим образом:
0 1 2 3
2 2001-01-01 123456 "abc def" V4
4 2001-01-02 789012 "ghi "jklm" n,op" V4
, и вы можете задать имена столбцов с помощью df.columns = ['header1', 'header2', 'header3', 'header4']