Вот метод для достижения этой цели:
import pandas as pd
# Sample text file (stored as a single string)
text = ''' 0
0 +-------------+------+--------+---------+
1 | series id | year | period | value |
2 +-------------+------+--------+---------+
3 | CUUR0000SA0 | 2014 | M12 | 234.812 |
4 | CUUR0000SA0 | 2014 | M11 | 236.151 |'''
# Parse the text file
lst = text.replace('+', '').replace('-', '').replace('|', '').split('\n')
new_lst = [lst[2]] + lst[4:] # Grab the data around the empty rows
# Build the data frame
df = pd.DataFrame(new_lst) # Create data frame from list
df = df[0].str.split(expand=True) # Split data into columns
df.columns = df.iloc[0,:] # Name the columns
df = df[1:] # Remove the first row
df = df[df.columns[1:]] # Remove the first column
df = df.reset_index(drop=True)
print(df)
0 series id year period value
0 CUUR0000SA0 2014 M12 234.812 None
1 CUUR0000SA0 2014 M11 236.151 None
Возможно, вам придется немного подправить его для работы с вашими фактическими данными.
Возможно, вы прочтетев вашем текстовом файле, например, так:
with open('file.txt') as f:
lines = f.readlines()
Вы можете использовать text = '\n'.join(lines)
, а затем продолжить выполнение остального сценария.