我对从SAP导出的数据有问题。有时你可以在发布文本中找到一个换行符。应该在一行中的内容,然后在两行中,这会导致一个非常糟糕的数据帧。 最烦人的是,我不能让熊猫意识到这个问题,它只是读错了行,即使列数小于标题。在
错误的例子数据.txt公司名称:
MANDT~BUKRS~BELNR~GJAHR
030~01~0100650326
~2016
030~01~0100758751~2017
您可以看到,第一行在0100650326之后有一个错误的换行符。2016年属于第一排。第三条线应该是这样的。在
如果导入此文件:
^{pr2}$我明白了。有什么不对的地方:
MANDT BUKRS BELNR GJAHR
0 30.0 1 100650326.0 NaN
1 NaN 2016 NaN NaN
2 30.0 1 100758751.0 2016.0
是否可以修复错误的换行符,或者告诉pandas忽略列数小于header的行?在
只是为了完成它。我想要这个:
MANDT BUKRS BELNR GJAHR
0 30 1 100650326 2016
1 30 1 100758751 2016
我试图将与open一起使用,并将'\n'(换行符)替换为“”(什么都没有),但这会导致一个单一的线性文件。这不是故意的。在
你可以做一些预处理来消除不必要的中断。下面是我测试的例子。在
正确的方法是在创建时修复文件。如果这不可能,您可以预处理文件或使用包装器。在
下面是一个使用字节级包装器的解决方案,该包装器将行合并,直到获得正确数量的分隔符。我使用字节级包装器来利用io模块的类,并尽可能少地添加自己的代码:})
RawIOBase
从底层字节文件对象读取行,并组合行以获得预期数量的分隔符(仅重写readinto
和{然后可以将代码更改为:
^{pr2}$相关问题 更多 >
编程相关推荐