在Powershell中从CSV文件中获取唯一列和计数



我有一个名为Products.csv的CSV文件

Product_ID,Category
1,A
2,A
3,A
4,B

我想要一个powershell脚本,将显示我的唯一类别随着计数和导出到CSV。

A,3
B,1

我使用以下代码提取唯一类别,但无法获得计数:

Import-Csv Products.csv -DeLimiter ","|
Select 'Category' -Unique |
Export-Csv Summary.csv -DeLimiter "," -NoTypeInformation
有谁能帮我吗?谢谢。

您可以使用Group-Object获取计数。

Import-Csv Products.csv -DeLimiter "," |
Group-Object Category | Foreach-Object {
"{0},{1}" -f $_.Name,$_.Count 
}

如果您想要计数的CSV输出,则需要为数据提供标题。Group-Object输出属性Name为分组属性值,Count为该组中的项数。

Import-Csv Products.csv -DeLimiter "," |
Group-Object Category | Select-Object Name,Count |
Export-Csv Summary.csv -Delimiter ',' -NoType

您可以进一步使用上面的代码并使用Select-Object的计算属性。然后可以使用表达式创建自定义命名列和/或值。

Import-Csv Products.csv -DeLimiter "," |
Group-Object Category |
Select-Object @{n='Product_ID';e={$_.Name}},Count |
Export-Csv Summary.csv -Delimiter ',' -NoType

最新更新