gpt4 book ai didi

csv - 来自 CSV 文件的 awk 条件总和

转载 作者:行者123 更新时间:2023-12-03 22:00:31 24 4
gpt4 key购买 nike

我有一个 CSV 文件,我想从中提取一些信息:对于一个列中的每个不同值,我想计算另一列中相应值的总和。最终,我可能会用 Python 来做,但我相信使用 awk 可以有一个简单的解决方案。 .

这可能是 CSV 文件:

2    1:2010-1-bla:bla    1.6
2 2:2010-1-bla:bla 1.1
2 2:2010-1-bla:bla 3.4
2 3:2010-1-bla:bla -1.3
2 3:2010-1-bla:bla 6.0
2 3:2010-1-bla:bla 1.1
2 4:2010-1-bla:bla -1.0
2 5:2010-1-bla:bla 10.9

我想得到:
1    1.6
2 4.5
3 5.8
4 -1.0
5 10.9

目前,我只能提取:

a) 第一列的值:
awk -F ' ' '{print $(2)}' MyFile.csv | awk -F ':' '{print $(1)}'

然后得到:
1
2
2
3
3
3
4
5

b) 并且值等于 1.1在最后一列:
awk -F ' ' '{print $(NF)}' MyFile.csv | awk '$1 == 1.1'
然后得到:
1.1
1.1

我无法同时提取我感兴趣的列,这最终可能对我有帮助。这是一个示例输出,可以简化总和的计算(我不知道):
1    1.6
2 1.1
2 3.4
3 -1.3
3 6.0
3 1.1
4 -1.0
5 10.9

编辑:感谢 Elenaher,我们可以说输入是上面的文件。

最佳答案

$ awk -F"[: \t]+" '{a[$2]+=$NF}END{for(i in a ) print i,a[i] }' file
4 -1
5 10.9
1 1.6
2 4.5
3 5.8

关于csv - 来自 CSV 文件的 awk 条件总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3934423/

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