使用Powershell根据行中的条件对各个列求和以求小计

打印机先生

我有一个csv文件,其中包含下一个数据:

Pages,Pages BN,Pages Color,客户
145,117,28,Report_Alexis
46,31,15,Report_Alexis
75,27,48,Report_Alexis
145,117,28,Report_Jack
46,31,15,Report_Jack
75,27,48,Report_Jack
145,117,28 ,Report_Amy
46,31,15,Report_Amy
75,27,48,Report_Amy

所以我需要做的是根据报告名称汇总每一列,并导出到这样的另一个csv文件

页面,页面BN,页面颜色,客户
266,175,91,Report_Alexis
266,175,91,Report_Jack
266,175,91,Report_Amy

我怎样才能做到这一点?

我尝试了这个:

$coutnpages = Import-Csv "C:\temp\testcount\final file2.csv" |where {$_.Filename -eq 'Report_Jack'} | Measure-Object -Property Pages -Sum

然后

$Countpages.Sum | Set-Content -Path "C:\temp\testcount\final file3.csv"

但这只是一个,然后我不知道该怎么做。

你能帮我么?

Filimonic

工作代码

$IdentityColumns = @('Customer')
$ColumnsToSum = @('Pages', 'Pages BN', 'Pages Color')
$CSVFileInput = 'S:\SCRIPTS\1.csv'

Import-Csv -Path $CSVFileInput |
    Group-Object -Property $IdentityColumns |
    ForEach-Object { 
        $resultHT = @{ Customer = $_.Name }     # This is result HashTable (Key-Value collection). We add here sum's next line.
        @($_.Group | Measure-Object -Property $ColumnsToSum -Sum ) |    # Run calculating of sum for all $ColumnsToSum`s in one line
            ForEach-Object { $resultHT[$_.Property] = $_.Sum }     # For each calculated property we set property in result HashTable
        return [PSCustomObject]$resultHT     # Convert HashTable to PSCustomObject. This better.
    } |     # End of ForEach-Object by groups
    Select @($ColumnsToSum + $IdentityColumns) |     # This sets order of columns. It may be important.
    Out-GridView     # Or replace with Export-Csv
    #Export-Csv ...

说明:

用于Group-Object收集具有4个属性:

  • Name -群组名称,等于您要分组的属性的确定值(-ies)
  • Values -您要分组的属性值的集合(未字符串化)
  • Count -归入此组的元素数
  • Group -归入此组的元素的值

要按单个字符串属性进行分组(在这种情况下可以),您可以轻松使用Namegroup,否则请始终使用Values

所以后Group-Object,你迭代不是收集-的-行CSV的,但在收集-的集合- -行的一些条件进行分组。

Measure-Object可以为单遍处理多个属性(不混合来自不同属性的值),因此我们会积极使用。这将导致对象数组的属性Property等于传递给Measure-Object和值(Sum在我们的示例中)。我们将这些Property=Sum移动到哈希表。

[PSCustomObject]将哈希表转换为对象。对象总是更好地输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据多个列中的条件对行求和

来自分类Dev

根据R中的条件对列中的行求和

来自分类Dev

根据替代列中的条件求和的值

来自分类Dev

根据条件对列求和

来自分类Dev

根据列中的值对行组求和

来自分类Dev

使用 R 对数据框的行值求和 - 其中根据条件评估行中的每个值

来自分类Dev

根据条件求和相邻行

来自分类Dev

如何根据值对列的各个部分求和(数据框)

来自分类Dev

根据水平和垂直条件对行中的数据求和

来自分类Dev

根据python数据框中的条件对行值求和

来自分类Dev

在mysql查询中根据条件求和或求和

来自分类Dev

根据行索引值从pandas数据框列中求和

来自分类Dev

根据行索引值从pandas数据框列中求和

来自分类Dev

如何在Postgres的同一列中创建两列以求和?

来自分类Dev

使用 GROUP BY 对行中列的值求和

来自分类Dev

SSRS根据条件创建小计

来自分类Dev

Matlab根据条件求和结构数组行

来自分类Dev

R:根据几个条件求和行

来自分类Dev

根据列条件更新表中的行

来自分类Dev

根据其他列中的条件对列中的唯一值求和

来自分类Dev

根据其他列中的条件对一列中的值求和,并更改值

来自分类Dev

根据Python中的条件求和嵌套列表

来自分类Dev

根据 id 和根据条件跳过行的列中的差异

来自分类Dev

根据数据帧中另一列的条件求和的列

来自分类Dev

在 SSRS 报告中创建一列以根据前一列的条件对值求和

来自分类Dev

以求和条件联接两个表

来自分类Dev

根据Powershell中的if / else条件需要突出显示行

来自分类常见问题

使用Powershell对带有标题的CSV目录中的列求和

来自分类Dev

使用Powershell对带有标题的CSV目录中的列求和

Related 相关文章

热门标签

归档