Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫读取的列间距不正确_Python_Pandas - Fatal编程技术网

Python 熊猫读取的列间距不正确

Python 熊猫读取的列间距不正确,python,pandas,Python,Pandas,在下面的数据框中,大多数列的分隔符都是空格。但是,在第一列中,空格丢失,导致所有列向右移动一个。是否有一种读取数据帧的方法,这样我就不必不断地选择左边的一列来访问我需要的列 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

在下面的数据框中,大多数列的分隔符都是空格。但是,在第一列中,空格丢失,导致所有列向右移动一个。是否有一种读取数据帧的方法,这样我就不必不断地选择左边的一列来访问我需要的列

 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 [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,1,2
列吗?这只是索引。这是已经导入的数据帧,不是文件,对吗?你能更具体地解释一下空格缺失和“第一列”是什么意思吗?谢谢beroe,0,1,2列确实是索引。“运行”下的列的值类似于11988,实际上应该是1988年(其中1988年是年份)。然后,您能准确显示文件中的内容吗?(不是错误的熊猫输出)现在编辑以显示原始数据…因此,运行列的所有值均为1,年份列的值应为1988、1989…2000谢谢joris,对不起,我可能不太清楚,但值为0、1、2的列。。。是pandas添加的索引,但实际上不在文件中。