Pandas -将工作值从read_csv传递到DataFrame会使所有内容都变成NaN,为什么?

1qczuiv0  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(127)

我正在编写一个脚本,它将一堆txt文件读入pandas进行数据处理。文本文件的示例如下:

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_Raw的值都是正确的,但“Data_Frame”中的所有值都是NaN。
我已经尝试删除NaN值或更改数据类型,但似乎没有任何东西可以正确读取Data_Frame。

nwo49xxi

nwo49xxi1#

尝试创建传递numpy数组而不是dataframe到pd.DataFrame构造器:

Data_Frame = pd.DataFrame(Data_RAW.values, columns=["Hz", "N", "m/s2"])

这将打印:

Hz         N      m/s2
0  0.000000e+00  0.058443  0.050785
1  5.000000e+11  0.058028  0.013366
2  0.000000e+00  0.112305  0.008524
3  5.000000e+11  0.135978  0.005294
4  0.000000e+00  0.102811  0.004225
5  2.500000e+12  0.118241  0.005826

我建议只设置Data_RAW.column属性:

Data_RAW.columns =  ["Hz", "N", "m/s2"]
print(Data_RAW)

相关问题