【问题标题】:Count the number of rows in csv column containing 'male'计算 csv 列中包含“男性”的行数
【发布时间】:2018-06-11 09:09:53
【问题描述】:

我希望在包含 500 个条目的 CSV 文件中计算男性成员的数量。该文件只有一张,如下所示:

Klantnummer Nationaliteit Geslacht 标题 1名荷兰女女士 2 荷兰女夫人 3 荷兰女性夫人 4 荷兰女博士 5 荷兰男 Mr.

我在 google 或 stackoverflow 上找不到任何这样的例子,你能帮忙吗?

【问题讨论】:

  • “我找不到任何例子”是什么意思
  • (Import-Csv 'yourPath' | Where-Object Geslacht -eq male | Measure-Object).Count
  • 这似乎不起作用,我的计数为 0。我尝试将 'geslacht' 和 'male' 放在引号中,不幸的是这没有做到。不过感谢您的快速回复!
  • 文件只有一张:CSV 文件只能包含一张“表格”。这是一个数据表。
  • 那么它不是一个 csv,而是一个制表符分隔的文件?

标签: powershell csv


【解决方案1】:

以下命令给出男性条目的数量:

(Import-Csv 'yourPath' -Delimiter ';' | Where-Object {$_.geslacht -eq "male"} | Measure-Object).Count

确保提供 .csv 文件中使用的正确路径和正确分隔符。

【讨论】:

    【解决方案2】:

    您可以使用Import-CSV cmdlet 导入文件。请注意,您必须指定分隔符,因为您不使用常规 CSV。然后,您可以使用所需的 Geslacht 过滤所有记录并使用 Measure-Object cmdlet 对其进行计数:

    (Import-Csv 'yourPath' -Delimiter ';'| Where-Object Geslacht -eq male | Measure-Object).Count
    

    【讨论】:

      【解决方案3】:

      使用Group-Object 替代Measure-Object

      Import-Csv 'C:\path\to\your.csv' -Delimiter ';' |
          Group-Object 'Geslacht' |
          Where-Object { $_.Name -eq 'male' } |
          Select-Object -Expand Count
      

      【讨论】:

        【解决方案4】:

        试试这个:

        $Get_Gender=Import-Csv 'Yourpath'  | Where-Object {$_.geslacht -eq "Male"}
        
        write-host "Number of $($Get_Gender.Geslacht |Select-Object -First 1) are :$(($Get_Gender.Geslacht).count)"
        

        【讨论】:

        • 既然 where 已经明确定义了男性,你也可以将其写入 Write-Host。或者干脆使用 $Get_Gender[0].Geslacht。
        • 我之前尝试过使用 Get_Gender[0],但是当您的列表中只有一个男性时,它只会选择字母“M”,这就是我使用 select-object -first 1 的原因
        猜你喜欢
        • 1970-01-01
        • 2013-06-11
        • 2018-07-06
        • 1970-01-01
        • 2022-01-11
        • 2021-03-19
        • 2020-05-13
        • 2021-08-30
        • 1970-01-01
        相关资源
        最近更新 更多