TIME M1 M2 K1 K2 SEP ECC R1/ROL1 R2/ROL2 TYPE
0.0000 30.000 15.000 1 1 6.9488e+05 0.00 0.000 0.000 INITIAL
0.0000 30.000 15.000 1 1 6.9488e+05 0.00 0.000 0.000 PreMS aperi=694884 t1=0 f1=0 R1=7.74028 R1/RLperi1=2.53155e-05 R1/a(1-e)=1.11389e-05 t2=0 f2=0 R2=5.02787 R2/RLperi2=2.25555e-05 R2/a(1-e)=7.23555e-06 R1+2/aperi=1.83745e-05
5.9523 27.735 14.912 2 1 7.3335e+05 0.00 0.000 0.000 TYPE_CHNGE
5.9611 27.663 14.912 4 1 7.3459e+05 0.00 0.004 0.000 TYPE_CHNGE
6.3588 14.790 14.903 4 1 1.0562e+06 0.00 0.004 0.000 q-inv
6.4755 10.469 14.901 7 1 1.2381e+06 0.00 0.000 0.000 TYPE_CHNGE
6.6301 9.158 14.897 8 1 1.3065e+06 0.00 0.000 0.000 TYPE_CHNGE
6.6595 8.857 14.897 14 1 0 -1.00 0.000 0.000 TYPE_CHNGE
6.6595 8.857 14.897 14 1 0 -1.00 0.000 0.000 DISRUPT
6.6595 8.857 14.897 14 1 0 -1.00 0.000 0.000 SN
6.6595 8.857 14.897 14 1 0 -1.00 0.000 0.000 kick vk=392.824 vr=1.84982 theta=6.21052 phi=-0.146541 -> vn=390.999
6.6595 8.857 14.897 14 1 0 -1.00 0.000 0.000 BEG_SYMB
12.7530 8.857 14.654 14 2 0 -1.00 0.000 0.000 OFF_MS
12.7530 8.857 14.654 14 2 0 -1.00 0.000 0.000 TYPE_CHNGE
12.7795 8.857 14.648 14 4 0 -1.00 0.000 0.000 TYPE_CHNGE
14.2105 8.857 10.438 14 5 0 -1.00 0.000 0.000 TYPE_CHNGE
14.2653 8.857 1.912 14 14 0 -1.00 0.000 0.000 TYPE_CHNGE
14.2653 8.857 1.912 14 14 0 -1.00 0.000 0.000 BEG_SYMB
14.2653 8.857 1.912 14 14 0 -1.00 0.000 0.000 q-inv
14.2653 8.857 1.912 14 14 0 -1.00 0.000 0.000 SN
20000.0000 8.857 1.912 14 14 0 -1.00 0.000 0.000 MAX_TIME
概率:1
这是文件。正如您所看到的那样,第3行和第12行的变量非常长,并且也用空格分隔,但它们是同一“TYPE”的一部分。 我试过了:
import pandas as pd
pd.read_csv('c_log2.dat', delimiter='delim_whitespace=True').
但它抱怨道:
ParserError:标记数据时出错。 C错误:第12行预计41个字段,见43
如何读取具有由空格分隔的长值但是同一变量的一部分的文件? 非常感谢帮助。
答案 0 :(得分:2)
预处理到临时文件,然后用pandas读取该文件。
Name
输出:
from io import StringIO
import pandas as pd
import re
for_pd = StringIO()
with open('ale.csv') as ale:
for line in ale:
line = re.subn(r'\s+', ',', line.strip(), 9)
print (line[0], file=for_pd)
for_pd.seek(0)
df = pd.read_csv(for_pd)
print (df.head())