팬더를 사용하여 텍스트 파일에서 데이터를 가져 오려고합니다. 데이터는 다음과 같습니다.
Step Time Pressure z=0 MoleFrac 1 z=0 MoleFrac 2 z=0 Mole flow z=0
[Int] [seconds] [bar.a] [-] [-] [gmole/s]
1 0.0000000 7.75425808E-01 1.30000000E-01 8.70000000E-01 6.00000000E-02
2 0.0556727 7.67785502E-01 1.30000000E-01 8.70000000E-01 6.00000000E-02
3 0.5673533 7.18327020E-01 1.30000000E-01 8.70000000E-01 6.00000000E-02
나는 다음과 같이 그것을 시도했다.
import pandas as pd
data = pd.read_csv('filename.txt', delimiter="\s+", header=[0,1])
헤더에 하나의 행만 사용하면 작동하지만 두 번째 행을 추가하자마자 오류 메시지가 나타납니다.
IndexError: list index out of range
어떤 아이디어?
시험:
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]')],
)
따라서 결과 데이터 프레임이 올바르게 보입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다