我在文本文件中有一个看起来像这样的数据集。
0 0CF00400 X 8 66 7D 91 6E 22 03 0F 7D 0.021650 R
0 18EA0080 X 3 E9 FE 00 0.022550 R
0 00000003 X 8 D5 64 22 E1 FF FF FF F0 0.023120 R
我用
读了这个file_pandas = pd.read_csv(fileName, delim_whitespace = True, header = None, engine = 'python')
获得输出
0 0 0CF00400 X 8 66 7D 91 6E 22 03 0F 7D 0.02165
1 0 18EA0080 X 3 E9 FE 0 0.022550 R None None None NaN
2 0 00000003 X 8 D5 64 22 E1 FF FF FF F0 0.02312
但我希望将其读作
0 0 0CF00400 X 8 66 7D 91 6E 22 03 0F 7D 0.021650 R
1 0 18EA0080 X 3 E9 FE 00 0.022550 R
2 0 00000003 X 8 D5 64 22 E1 FF FF FF F0 0.023120 R
我已尝试删除delim_whitespace = True
并将其替换为delimiter = " "
,但只是将上面显示的输出中的前四列合并,但它确实正确解析了其余数据,这意味着其余列类似于原始txt文件(禁止空格中的NaN值)。
我不确定如何从这里开始。
附注:00
仅被解析为0
。有没有办法显示00
?
答案 0 :(得分:8)
您的数据似乎是固定宽度列,您可以尝试pandas.read_fwf()
:
from io import StringIO
import pandas as pd
df = pd.read_fwf(StringIO("""0 0CF00400 X 8 66 7D 91 6E 22 03 0F 7D 0.021650 R
0 18EA0080 X 3 E9 FE 00 0.022550 R
0 00000003 X 8 D5 64 22 E1 FF FF FF F0 0.023120 R"""),
header = None, widths = [1,12,2,8,4,4,4,4,4,4,4,4,16,2])