2014-04-04 2 views
0

아래 데이터 프레임에서 대부분의 열에 대한 구분 기호는 공백입니다. 그러나 첫 번째 열에서 공백이 누락되어 모든 열이 오른쪽으로 하나씩 이동합니다. 데이터 프레임을 읽을 수있는 방법이있어서 필요한 열을 얻으려면 왼쪽의 열을 하나씩 선택하지 않아도됩니다.판다가 잘못 배치 된 열을 읽음

RUN YR A  B  C  D  E  F 
    11988 8.98 173.90 210.81 19.54 0.69 0.00 
    11989 7.00 317.30 280.06 1.82 2.10 0.00 
    11990 8.82 237.00 275.55 0.77 1.20 0.00 
    11991 8.39 408.90 402.21 0.00 2.50 0.00 
    11992 8.48 291.20 285.01 0.00 1.67 0.00 
    11993 5.90 437.40 419.76 2.86 3.39 0.00 
    11994 7.65 405.30 346.13 5.69 2.96 0.00 
    11995 7.06 352.80 383.85 0.07 2.17 16.05 
    11996 5.14 377.10 339.10 13.55 2.27 0.00 
    11997 6.80 350.20 383.68 7.32 2.82 0.00 
    11998 8.21 462.80 358.38 2.85 3.40 0.00 
    11999 8.70 322.30 387.90 2.89 2.67 24.64 
    12000 8.33 297.40 233.06 0.00 1.75 0.00 
+0

'0,1,2' 열에 대해 이야기하고 있습니까? 그것은 단지 색인 일뿐입니다. 이것은 파일이 아니라 이미 가져온 데이터 프레임입니다. 맞습니까? 공백이 누락 된 것과 "첫 번째 열"이 의미하는 바를 구체적으로 설명 할 수 있습니까? – beroe

+0

감사합니다. beroe, 0,1,2 열은 실제로 색인입니다. RUN 아래의 열은 11988과 같은 값을 가지며 실제로는 1 1988 (1988은 올해)입니다. – user308827

+0

그러면 파일에있는 내용을 정확하게 표시 할 수 있습니까? – joris

답변

1

당신이 위에 표시하는 파일 인 경우 , 당신이 이것을 읽을 read_fwf이 (고정 폭 형식의 라인의 테이블을 읽기 위해) 사용할 수 있기 때문에 misformatting의

In [116]: s=""" RUN YR A  B  C  D  E  F 
    ...:  11988 8.98 173.90 210.81 19.54 0.69 0.00 
    ...:  11989 7.00 317.30 280.06 1.82 2.10 0.00 
    ...:  11990 8.82 237.00 275.55 0.77 1.20 0.00 
    ...:  11991 8.39 408.90 402.21 0.00 2.50 0.00 
    ...:  11992 8.48 291.20 285.01 0.00 1.67 0.00 
    ...:  11993 5.90 437.40 419.76 2.86 3.39 0.00 
    ...:  11994 7.65 405.30 346.13 5.69 2.96 0.00 
    ...:  11995 7.06 352.80 383.85 0.07 2.17 16.05 
    ...:  11996 5.14 377.10 339.10 13.55 2.27 0.00 
    ...:  11997 6.80 350.20 383.68 7.32 2.82 0.00 
    ...:  11998 8.21 462.80 358.38 2.85 3.40 0.00 
    ...:  11999 8.70 322.30 387.90 2.89 2.67 24.64 
    ...:  12000 8.33 297.40 233.06 0.00 1.75 0.00""" 

In [117]: pd.read_fwf(StringIO(s)) 
Out[117]: 
    RUN YR  A  B  C  D  E  F 
0  11988 8.98 173.9 210.81 19.54 0.69 0.00 
1  11989 7.00 317.3 280.06 1.82 2.10 0.00 
2  11990 8.82 237.0 275.55 0.77 1.20 0.00 
3  11991 8.39 408.9 402.21 0.00 2.50 0.00 
4  11992 8.48 291.2 285.01 0.00 1.67 0.00 
5  11993 5.90 437.4 419.76 2.86 3.39 0.00 
6  11994 7.65 405.3 346.13 5.69 2.96 0.00 
7  11995 7.06 352.8 383.85 0.07 2.17 16.05 
8  11996 5.14 377.1 339.10 13.55 2.27 0.00 
9  11997 6.80 350.2 383.68 7.32 2.82 0.00 
10  11998 8.21 462.8 358.38 2.85 3.40 0.00 
11  11999 8.70 322.3 387.90 2.89 2.67 24.64 
12  12000 8.33 297.4 233.06 0.00 1.75 0.00 

, 이름이 'RUN YR' 인 첫 번째 열은 올바르지 않지만 다른 열은 올바르지 않습니다.

+0

고마워요. joris, 미안 해요. 분명치 않았 겠지만 값 0, 1, 2를 가진 열은 팬더가 추가 한 것으로 실제로 파일에 없습니다. – user308827

+0

그러면 파일에있는 내용을 정확히 보여줄 수 있습니까? – joris

관련 문제