импорт текста в pandas с несколькими разделителями

у меня есть некоторые данные, что выглядит так:

c stuff
c more header
c begin data         
 1 1:.5
 1 2:6.5
 1 3:5.3

Я хочу импортировать его в фрейм данных 3 столбца, со столбцами, например

a , b, c
1,  1, 0.5
etc

Я пытался прочитать в данных, как 2 столбца разделились на":", а затем разделить первый столбец на"". Однако меня это раздражает. Есть ли лучший способ разобраться в этом непосредственно при импорте?

:
data1 = pd.read_csv(file_loc, skiprows = 3, delimiter = ':', names = ['AB', 'C'])
data2 = pd.DataFrame(data1.AB.str.split(' ',1).tolist(), names = ['A','B'])

однако это еще более осложняется тем, что мои данные имеют ведущий пространство...

Я чувствую, что это должна быть простая задача, но в настоящее время я думаю прочитать ее строка за строкой и использовать некоторые найти замену для очистки данных перед импортом.

1 ответов


одним из способов может быть использование разделителей регулярных выражений, разрешенных движком python. Например:

>>> !cat castle.dat
c stuff
c more header
c begin data         
 1 1:.5
 1 2:6.5
 1 3:5.3
>>> df = pd.read_csv('castle.dat', skiprows=3, names=['a', 'b', 'c'], 
                     sep=' |:', engine='python')
>>> df
   a  b    c
0  1  1  0.5
1  1  2  6.5
2  1  3  5.3