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

Pandas中read_csv读取的有效数据转为DataFrame后全为NaN的原因?

问题:Pandas读取TXT文件后新建DataFrame全为NaN

我用Pandas读取多个TXT文件做数据处理,TXT样本内容如下:

0000000000000e+000,0.05844309,0.05078511
5000000000000e-001,0.05802771,0.01336614
0000000000000e-001,0.1123048,0.008524402
5000000000000e-001,0.1359783,0.005294179
0000000000000e+000,0.1028109,0.004224583
2500000000000e+000,0.1182408,0.005825941

(实际文件无空行)

我的代码如下:

os.chdir(ProcessedDataPath) #Path to the overall folder
PandasFilePath = 'Run_Data00001.txt' #this being the data file I'm reading
Data_RAW = pd.read_csv(PandasFilePath, header = None)
Data_RAW = Data_RAW.astype(float)
Data_Frame = pd.DataFrame(Data_RAW,columns=["Hz", "N", "m/s2"])

代码执行无报错,列名显示正确,但Data_Frame里所有值都是NaN,而Data_RAW的数据是正常的(已通过Anaconda变量查看器确认数据类型和内容)。试过移除NaN、修改数据类型,都没法让数据正常载入Data_Frame。


解决方法

错误原因

你创建Data_Frame的写法逻辑有误:当使用pd.DataFrame(Data_RAW, columns=["Hz", "N", "m/s2"])时,Pandas会尝试从Data_RAW中匹配同名列,但Data_RAW的列是默认的0、1、2,和你指定的新列名不匹配,因此生成全NaN的结果。

修正方案

方案1:直接重命名原DataFrame的列

不需要新建DataFrame,直接给Data_RAW重命名列即可:

os.chdir(ProcessedDataPath)
PandasFilePath = 'Run_Data00001.txt'
Data_RAW = pd.read_csv(PandasFilePath, header = None)
Data_RAW = Data_RAW.astype(float)
# 映射原列索引到新列名
Data_Frame = Data_RAW.rename(columns={0: "Hz", 1: "N", 2: "m/s2"})

方案2:读取文件时直接指定列名(一步到位)

读取CSV时直接设置列名和数据类型,省去后续转换步骤:

os.chdir(ProcessedDataPath)
PandasFilePath = 'Run_Data00001.txt'
# 读取时指定列名+数据类型
Data_Frame = pd.read_csv(PandasFilePath, header=None, names=["Hz", "N", "m/s2"], dtype=float)

批量处理多个TXT文件的优化写法

如果你需要处理文件夹下多个TXT文件,可以用循环批量读取并合并:

import os
import pandas as pd

ProcessedDataPath = "你的目标文件夹路径"
os.chdir(ProcessedDataPath)

# 筛选出所有TXT文件
txt_files = [f for f in os.listdir() if f.lower().endswith('.txt')]

# 批量读取并合并
all_datasets = []
for file_name in txt_files:
    df = pd.read_csv(file_name, header=None, names=["Hz", "N", "m/s2"], dtype=float)
    # 添加文件名列,方便后续溯源数据来源
    df["source_file"] = file_name
    all_datasets.append(df)

# 合并成一个大DataFrame
final_data = pd.concat(all_datasets, ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:57:48