gpt4 book ai didi

python - 如何在 Python 中读取带有包装列的数据?

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:33 27 4
gpt4 key购买 nike

我正在尝试读取以下数据

     0      3177         5
3.4275637990000E+33 7.7345239420000E+11 2.3294608630000E+21 2.0879655710000E+05
1.9252063604938E+06 2.0037575941018E+06-1.0000000000000E+00 0.0000000000000E+00
0.0000000000000E+00 1.1806662792899E+08 0.0000000000000E+00 1.6258263880000E+00
0.0000000000000E+00 3.0000000000000E+00 8.7143739363190E-06 1.1806108844692E+08
1.5216398828085E-04 1.5621014411210E+00 0.0000000000000E+00 2.9999238008221E+00
1.0979515673726E-05 1.1805809220990E+08 2.4154974448797E-04 1.5621006577022E+00
0.0000000000000E+00 2.9996256593782E+00 2.1960663497032E-05 1.1803176057951E+08
9.6633451293816E-04 1.5620942285096E+00 0.0000000000000E+00 2.9994037831384E+00
2.7670327547614E-05 1.1801096239579E+08 1.5341282126072E-03 1.5620891863088E+00
0.0000000000000E+00 2.9990524870828E+00 3.4865681847029E-05 1.1797792540807E+08
2.4357001431448E-03 1.5620811953515E+00 0.0000000000000E+00 2.9984939557312E+00
4.3934518613971E-05 1.1792547175142E+08 3.8674871654846E-03 1.5620681038247E+00
0.0000000000000E+00 2.9976271324793E+00

前 3 行是标题,后面的行是 6 个不断重复的变量,换句话说:

#Header line1
#Header line2
#Header line3
var1 var2 var3 var4
var5 var6 var1 var2
var3 var4 var5 var6
var1 var2 var3 var4
var5 var6 var1 var2
var3 var4 var5 var6
var1 var2 var3 var4
var5 var6 var1 var2
var3 var4 var5 var6
var1 var2 var3 var4
var5 var6

在 Python 中将所有 var1 收集到单个变量中的最佳方法是什么?

任何想法都会受到赞赏。


编辑:

请注意,数字并不总是由空格分隔。当右边的数字为负数时会发生这种情况,因为它显示第 2 列和第 3 列之间的第 3 行。

始终相同的格式是 1.1234567890123E+12,如果是负数,则为 -1.2345678901234E+12。即点前有 1 个数字,点后有 13 个数字,指数中有 2 个数字。

最佳答案

我不确定这个解决方案总体上有多好,但它适用于您的情况。

首先,您应该分别处理标题和文件的其余部分。这是数据部分。

使用pandas fixed-column file reader read_fwf读取数据,跳过前三行:

import pandas as pd
import numpy as np
data = pd.read_fwf("yourfile", skiprows=2, widths=[20,20,20,20])

从数据框中提取值,将它们展平:

values = data.values.reshape(1,-1)[0]

删除空单元格, reshape 为六列:

values[~np.isnan(values)].reshape(-1,6)

关于python - 如何在 Python 中读取带有包装列的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55228488/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com