gpt4 book ai didi

python - 从缺少条目的多列文件中提取数据

转载 作者:行者123 更新时间:2023-11-28 21:56:55 25 4
gpt4 key购买 nike

我正在尝试从 multicolumn file 中提取一些数据命名为 mass.mas03。列由 tab 分隔。当数据开始时,您可以看到有些条目是空的(即第 44 行 VS 第 45 行)。

整个想法是从特定列(MASS EXCESS,即)中提取多行数据,求和并在 xy 轴系统上创建一条水平线,其中y 坐标是这些值的总和。

以第 41、65、74 行为例

  -1    0    1    1 H          7288.97050    0.00011      0.0      0.0   B-      *                1 007825.03207    0.00010
0 4 4 8 Be 4941.672 0.035 7062.435 0.004 B- -17979.819 1.001 8 005305.103 0.037
4 7 3 10 Li -n 33050.581 15.124 4531.555 1.512 B- 20443.910 15.123 10 035481.259 16.236

我想做: 7288.97050 + 4941.672 - 33050.581 = - 20819.9385 。如果我使用 awk 命令访问数据,我会遇到这个问题

> awk '/8 Be/ {print $6}' mass.mas03
4941.672
>awk '/10 Li/ {print $6}' mass.mas03
-n

我不知道 awk 是否是最好的选择,不仅可以进行数据选择,还可以进行“绘图”,所以我愿意接受建议!

一个明显的解决方案是在需要时使用 $7 而不是 $6,但它是一个大文件,我正在尝试使整个过程自动化一些。

对于这个奇怪的列文件,有没有办法“选择”所需的数据并对它们应用一些简单的计算?

最佳答案

要用制表符替换空格,您可以尝试以下操作:

awk -f f.awk mass.mas03 > mass.mas03.tab

f.awk 是:

/^1N-Z/ {
f=1
print
getline
print
next
}
f {
gsub(/ +/,"\t")
}
{print}

关于python - 从缺少条目的多列文件中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20719132/

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