在下面的数据框中,大多数列的分隔符是空格。但是,在第一列中,空格丢失,导致所有列向右移动一列。有没有办法读取数据框,这样我就不必经常选择左边的一列来到我需要的列。
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 :(得分:1)
如果你上面显示的是你的文件,你可以使用read_fwf
(阅读固定宽度格式的行的表格)来阅读:
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'
的第一列不正确,而另一列则不正确。