Попробуйте:
df = pd.read_csv(r"filename.txt", delimiter="\s{2,}", header=[0,1], engine='python')
Если engine
установлено на python
, тогда можно использовать регулярное выражение в качестве разделителя.
Результат:
Step Time Pressure z=0 MoleFrac 1 z=0 MoleFrac 2 z=0 Mole flow z=0
[Int] [seconds] [bar.a] [-] [-] [gmole/s]
0 1 0.000000 0.775426 0.13 0.87 0.06
1 2 0.055673 0.767786 0.13 0.87 0.06
2 3 0.567353 0.718327 0.13 0.87 0.06
Поскольку в именах столбцов есть одиночные пробелы, я обнаружил, что разделитель должен состоять как минимум из 2 пробелов " "
, что выражается как \s{2,}
.
Проверить df.columns
:
MultiIndex([( 'Step', '[Int]'),
( 'Time', '[seconds]'),
( 'Pressure z=0', '[bar.a]'),
('MoleFrac 1 z=0', '[-]'),
('MoleFrac 2 z=0', '[-]'),
( 'Mole flow z=0', '[gmole/s]')],
)
, чтобы итоговый фрейм данных выглядел правильно.