我很难在标题中描述我需要的内容,所以如果这完全没有意义,我提前道歉。
如果我有一个包含 2 列的 CSV,其中一列包含人名,第二列包含数值,我需要在名称列中查找重复项,然后将该人的数值相加以获得总数在新的 CSV 中。
这是真实 CSV 的非常简化的版本
Name,Number
Dog,1
Cat,2
Fish,1
Dog,3
Dog,2
Cat,2
Fish,1
鉴于上述信息,我希望能够生成的是:
Name,Number
Dog,6
Cat,4
Fish,2
我真的不知道如何到达那里,也不知道是否可以使用 PowerShell。我只能使用 group-object 按名称进行分组,但我不知道如何在之后添加列。
我在这方面的研究中遇到的最大问题是,我在谷歌搜索时得到的大多数(如果不是全部)结果都涉及向 csv 添加新列,而不是执行数学计算。
最佳答案
我终于明白了
$csvfile = import-csv c:\csvfile.csv
$csvfile | group name | select name,@{Name="Totals";Expression={($_.group | Measure-Object -sum number).sum}}
归功于:
http://www.hanselman.com/blog/ParsingCSVsAndPoorMansWebLogAnalysisWithPowerShell.aspx
关于math - 使用 PowerShell 根据另一列中的信息添加(数学)CSV 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11586556/