You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何正确配置参数用Pandas加载.dat数据文件?

Pandas加载.dat数据文件的正确配置方案

问题根源

你的.dat文件包含大量注释行(以#开头)、一行数据表头(#L开头)和实际数据行,当前代码未过滤注释行、未指定正确表头,导致加载失败。

两种可行解决方案

方案一:直接用read_csv参数配置

通过硬编码行数快速加载(适合固定格式的文件):

import pandas as pd

df = pd.read_csv(
    '../pythonzzyy/aa.dat',
    engine='python',
    delim_whitespace=True,  # 空格分隔数据
    skiprows=range(23),      # 跳过前23行注释
    header=0,                # 用第24行(原#L行)作为表头
    skipfooter=1             # 跳过最后一行结束注释
)
print(df)

方案二:动态筛选数据(适合格式可能变化的文件)

先读取所有行,筛选出表头和数据部分,再构建DataFrame:

import pandas as pd

# 读取所有非空行
with open('../pythonzzyy/aa.dat', 'r') as f:
    lines = [line.strip() for line in f if line.strip()]

# 提取表头(去掉#L前缀)
header = next(line.split()[1:] for line in lines if line.startswith('#L'))
# 定位数据行范围
header_pos = lines.index(f'#L {" ".join(header)}')
end_pos = lines.index('#C Acquisition ended at Thu Jul  6 20:21:52 2023')
data_rows = [line.split() for line in lines[header_pos+1:end_pos]]

# 构建DataFrame并转换数值类型
df = pd.DataFrame(data_rows, columns=header).apply(pd.to_numeric)
print(df)

关键参数说明

  • delim_whitespace=True:匹配任意数量的空格作为分隔符,适配文件的空格分隔格式
  • skiprows/skipfooter:精准跳过无关的注释行
  • header=0:指定读取到的第一行作为列名

内容的提问来源于stack exchange,提问作者liuchzzyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:54:59