You can add a comment parameter to read_csv and then delete the columns using NaN dropna :
import pandas as pd import io temp=u"""-------------- |A|B|C| -------------- |1|2|3| -------------- |4|5|6| -------------- |7|8|9| --------------"""
More general solution:
import pandas as pd import io temp=u"""-------------- |A|B|C| -------------- |1|2|3| -------------- |4|5|6| -------------- |7|8|9| --------------""" #after testing replace io.StringIO(temp) to filename #separator is char which is NOT in csv df = pd.read_csv(io.StringIO(temp), sep="^", comment='-') #remove first and last | in data and in column names df.iloc[:,0] = df.iloc[:,0].str.strip('|') df.columns = df.columns.str.strip('|') #split column names cols = df.columns.str.split('|')[0] #split data df = df.iloc[:,0].str.split('|', expand=True) df.columns = cols print (df) ABC 0 1 2 3 1 4 5 6 2 7 8 9
source share