如何让Pandas忽略表头行开头的#字符?
解决Pandas读取.fce文件时表头含#的问题
给你几个实用的解决思路,直接套用就行:
方法1:利用comment参数自动忽略#
Pandas的read_csv自带comment参数,指定#为注释符号后,会自动忽略表头行开头的#,同时也能处理行内的注释内容。修改后的代码:
import pandas as pd df = pd.read_csv('DragLift.fce', sep='\s+', skiprows=5, comment='#')
这个方法最简单,适合大多数情况,处理后Time会自动成为第一列。
方法2:手动读取并处理表头
如果comment参数影响到其他内容(比如数据行里也有#),可以手动读取表头行,去掉开头的#后再赋值给DataFrame:
import pandas as pd # 先跳过前6行(前5行注释+第6行表头)读取数据 df = pd.read_csv('DragLift.fce', sep='\s+', skiprows=6, header=None) # 读取第6行(索引为5)作为表头,去掉开头的#并拆分 with open('DragLift.fce', 'r') as f: header_line = f.readlines()[5].strip() headers = header_line.lstrip('#').split() # 设置DataFrame的表头 df.columns = headers
方法3:用names参数自定义表头
如果你已经知道表头的具体内容,也可以直接用names参数指定,同时设置header=0跳过原表头行:
import pandas as pd # 假设表头是['Time', 'Drag', 'Lift', ...],替换成你实际的列名 df = pd.read_csv('DragLift.fce', sep='\s+', skiprows=5, header=0, names=['Time', 'Drag', 'Lift'])
内容的提问来源于stack exchange,提问作者Turbulent Flow
相关产品推荐
相关产品推荐

