我有一个文本文件data.txt,看起来是这样的:
ADMAS 8.046E+03 8.206E-03 1.532E+04 1.066E-01 6.982E+06-2.820E+00 \n
ADMAS -6.868E-03 2.009E+05 1.454E-02 9.516E+05-1.209E+00 6.058E+06 \n
ADMAS 1.543E+04 9.179E-01 1.459E+06 5.463E+00 3.918E+07-2.904E+01 \n
ADMAS -2.267E-01 9.537E+05 3.902E+00 3.071E+07-1.344E+02 1.073E+08 \n
ADMAS 7.005E+06 2.260E+01 3.978E+07 6.296E+01 7.586E+09-2.125E+03 \n
ADMAS 1.093E+00 6.052E+06-6.178E+00 1.065E+08-1.416E+03 1.941E+09 \n
FAMP 3.824E+03 7.120E-02 1.848E+05 7.317E-01 5.406E+06 4.096E+00 \n
FEPS 9.039E+01 3.571E+02 2.838E+00 3.580E+02 4.098E+01 1.892E+02 \n
(以循环模式等)。我只想要ADMAS值,并将它们放入6x6数组中。 我尝试了以下方法:
filename = "data.txt"
string_fnd_1 = "ADMAS"
textfile = open(filename, 'r')
file_lines = textfile.readlines()
textfile.close()
matches_admas = [line for line in file_lines if string_fnd_1 in line]
我得到以下信息:
['ADMAS 8.046E+03 8.206E-03 1.532E+04 1.066E-01 6.982E+06-2.820E+00\n', 'ADMAS -6.868E-03 2.009E+05 1.454E-02 9.516E+05-1.209E+00 6.058E+06\n',....]
现在,我想去掉字符串“ADMAS”,将值转换为float,并将其重塑为6x6数组。有人知道怎么做吗?我们将不胜感激
然后您需要将熊猫导入到您的代码中
然后,您需要找到该文件并将其作为数据帧导入
最后,您应该在数据帧的第一列上过滤'ADAM'
根据您的要求,我提出了以下解决方案:
输出将是:
希望它能解决你的问题
这不是最干净的,但似乎有效:
-
之前创建空格,以便以后在数字之间分割E -
的空格replace(" \\n", "")
硬写的\n
文本\n
[11:]
删除了前11个字符(例如:ADMAS
)输出:
相关问题 更多 >
编程相关推荐