我有一個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