使用 python 导入格式不正确的 txt 文件(消除第一行)
Import not well formatted txt file using python (eliminate first rows)
我正在尝试将 txt 文件导入 python,我正在使用 pandas。
我尝试导入的文件大致如下所示:
Final Test Values
***************************
Date: Friday, 24 September
Version : Version 3.0(3)
ID L : 1937
ID P : 60
***************************
A ; B ; C ; D ; E ; F
-----------------------------------------------------------------
660 ; 25 ; 5.6478 ; 0.9381 ; 0.67 ; 8.00
661 ; 25 ; 6.2592 ; 0.6103 ; 0.52 ; 8.00
662 ; 25 ; 6.7193 ; 0.5644 ; 0.52 ; 8.00
663 ; 25 ; 4.3940 ; 1.0760 ; 0.54 ; 8.00
664 ; 25 ; 6.4188 ; 0.5507 ; 0.54 ; 8.00
665 ; 25 ; 6.5221 ; 0.5619 ; 0.00 ; 8.00
我真正感兴趣的值就是这部分:
660 ; 25 ; 5.6478 ; 0.9381 ; 0.67 ; 8.00
661 ; 25 ; 6.2592 ; 0.6103 ; 0.52 ; 8.00
662 ; 25 ; 6.7193 ; 0.5644 ; 0.52 ; 8.00
663 ; 25 ; 4.3940 ; 1.0760 ; 0.54 ; 8.00
664 ; 25 ; 6.4188 ; 0.5507 ; 0.54 ; 8.00
665 ; 25 ; 6.5221 ; 0.5619 ; 0.00 ; 8.00
日期、ID L 和 ID P 每次都可能不同。
我通过手动打开 txt 文件并删除所有内容直到 660 完成了整个代码,但这显然不是最好的方法。
What I have now
有人有什么建议吗?
谢谢!
使用 skiprows
参数忽略不需要的行:
data = StringIO("""Final Test Values
***************************
Date: Friday, 24 September
Version : Version 3.0(3)
ID L : 1937
ID P : 60
***************************
A ; B ; C ; D ; E ; F
-----------------------------------------------------------------
660 ; 25 ; 5.6478 ; 0.9381 ; 0.67 ; 8.00
661 ; 25 ; 6.2592 ; 0.6103 ; 0.52 ; 8.00
662 ; 25 ; 6.7193 ; 0.5644 ; 0.52 ; 8.00
663 ; 25 ; 4.3940 ; 1.0760 ; 0.54 ; 8.00
664 ; 25 ; 6.4188 ; 0.5507 ; 0.54 ; 8.00
665 ; 25 ; 6.5221 ; 0.5619 ; 0.00 ; 8.00
""")
df = pd.read_csv(data, sep=";", skiprows=[0,1,2,3,4,5,6,8])
A B C D E F
0 660 25 5.6478 0.9381 0.67 8.0
1 661 25 6.2592 0.6103 0.52 8.0
2 662 25 6.7193 0.5644 0.52 8.0
3 663 25 4.3940 1.0760 0.54 8.0
4 664 25 6.4188 0.5507 0.54 8.0
5 665 25 6.5221 0.5619 0.00 8.0
我正在尝试将 txt 文件导入 python,我正在使用 pandas。
我尝试导入的文件大致如下所示:
Final Test Values
***************************
Date: Friday, 24 September
Version : Version 3.0(3)
ID L : 1937
ID P : 60
***************************
A ; B ; C ; D ; E ; F
-----------------------------------------------------------------
660 ; 25 ; 5.6478 ; 0.9381 ; 0.67 ; 8.00
661 ; 25 ; 6.2592 ; 0.6103 ; 0.52 ; 8.00
662 ; 25 ; 6.7193 ; 0.5644 ; 0.52 ; 8.00
663 ; 25 ; 4.3940 ; 1.0760 ; 0.54 ; 8.00
664 ; 25 ; 6.4188 ; 0.5507 ; 0.54 ; 8.00
665 ; 25 ; 6.5221 ; 0.5619 ; 0.00 ; 8.00
我真正感兴趣的值就是这部分:
660 ; 25 ; 5.6478 ; 0.9381 ; 0.67 ; 8.00
661 ; 25 ; 6.2592 ; 0.6103 ; 0.52 ; 8.00
662 ; 25 ; 6.7193 ; 0.5644 ; 0.52 ; 8.00
663 ; 25 ; 4.3940 ; 1.0760 ; 0.54 ; 8.00
664 ; 25 ; 6.4188 ; 0.5507 ; 0.54 ; 8.00
665 ; 25 ; 6.5221 ; 0.5619 ; 0.00 ; 8.00
日期、ID L 和 ID P 每次都可能不同。
我通过手动打开 txt 文件并删除所有内容直到 660 完成了整个代码,但这显然不是最好的方法。
What I have now
有人有什么建议吗?
谢谢!
使用 skiprows
参数忽略不需要的行:
data = StringIO("""Final Test Values
***************************
Date: Friday, 24 September
Version : Version 3.0(3)
ID L : 1937
ID P : 60
***************************
A ; B ; C ; D ; E ; F
-----------------------------------------------------------------
660 ; 25 ; 5.6478 ; 0.9381 ; 0.67 ; 8.00
661 ; 25 ; 6.2592 ; 0.6103 ; 0.52 ; 8.00
662 ; 25 ; 6.7193 ; 0.5644 ; 0.52 ; 8.00
663 ; 25 ; 4.3940 ; 1.0760 ; 0.54 ; 8.00
664 ; 25 ; 6.4188 ; 0.5507 ; 0.54 ; 8.00
665 ; 25 ; 6.5221 ; 0.5619 ; 0.00 ; 8.00
""")
df = pd.read_csv(data, sep=";", skiprows=[0,1,2,3,4,5,6,8])
A B C D E F
0 660 25 5.6478 0.9381 0.67 8.0
1 661 25 6.2592 0.6103 0.52 8.0
2 662 25 6.7193 0.5644 0.52 8.0
3 663 25 4.3940 1.0760 0.54 8.0
4 664 25 6.4188 0.5507 0.54 8.0
5 665 25 6.5221 0.5619 0.00 8.0