我有一个CSV文件,它看起来像如何获得由其他两个字段分组的CSV的平均值?
TAG_ONE, 11, 10/27/2014,12:00:00 AM,11,Alm Disabled
TAG_ONE, 12, 10/27/2014,1:00:00 AM,11,Alm Disabled
TAG_ONE, 15, 10/27/2014,2:00:00 AM,11,Alm Disabled
TAG_ONE, 25, 10/27/2014,3:00:00 AM,11,Alm Disabled
TAG_ONE, 76, 10/28/2014,12:00:00 AM,11,Alm Disabled
TAG_TWO, 78, 10/27/2014,9:00:00 PM,11,Alm Disabled
TAG_TWO, 79, 10/27/2014,10:00:00 PM,11,Alm Disabled
TAG_TWO, 78, 10/27/2014,11:00:00 PM,11,Alm Disabled
TAG_TWO, 45, 10/28/2014,12:00:00 AM,11,Alm Disabled
我试图得到一个新的CSV文件,该文件按日期(第三列)和标签(第一列)的平均值在第二列的所有值。 因此,对于每个标签,对于每个日期,我会得到平均值的一行。 类似...
TAG_ONE, 15.75, 10/27/2014,12:00:00 AM,11,Alm Disabled
TAG_ONE, 76, 10/28/2014,12:00:00 AM,11,Alm Disabled
TAG_TWO, 78.33, 10/27/2014,12:00:00 AM,11,Alm Disabled
TAG_TWO, 45, 10/28/2014,12:00:00 AM,11,Alm Disabled
我是PowerShell的新手。我可以得到标签所有值的平均值,但不能让它们按日期分割,之后我无法确定如何从中创建新的csv文件。
最终目标是为大量标签获取大量数据点,并将每个标签每天转换为一个数据点。
以下是我到目前为止。我可以对这些项目进行分组并将它们显示回来,但我似乎无法弄清楚如何在分组后将所有的值平均分配出来。我得到一个错误,group.value无法找到,但如果我只是试图打印$ item.group.value,他们都打印得很好。
$csv = import-csv -path \\psf\Home\Desktop\GitHub\iFix_Polling\Testing\HourlyTest.csv -header 'tag','value','date','time','unknown','alarm'
$collection = $csv | group-object -property tag,date
foreach($item in $collection) {
$item | measure-object -property group.value -average
}
如果您包含平均计算的代码,您将获得更少的损失。也许你几乎已经有了解决方案,你只需要社区来帮助其他人。现在看起来好像您正在寻找一种从零开始的解决方案,而不是这里的目标。 – Matt 2014-10-29 23:01:00
你如何处理结果CSV?我建议你将这些数据导入到数据库中并在那里进行工作。 – 2014-10-29 23:09:31
由于您是新手,我认为这是一个'我不知道我不知道的事情'的问题,并且您并不真正知道要查找什么,请使用以下cmdlet:Group-Object,Measure-Object,Add-成员,ForEach-Object,Select-Object和Export-CSV。运行Get-Help Group-Object -full并重复其他操作。这些都是我需要执行你想要的。 (除了Import-CSV,我假设你知道如何使用) – TheMadTechnician 2014-10-29 23:10:30