2017-05-03 59 views
3

重複的時間戳數據我有一個DataFrame對象尋找如下:如何崩潰的朱莉婭`DataFrame`

| Row | timestamp   | price | volume | 
|-----|---------------------|-------|--------| 
| 1 | 2011-08-14T14:14:40 | 10.40 | 0.779 | 
| 2 | 2011-08-14T15:15:17 | 10.40 | 0.101 | 
| 3 | 2011-08-14T15:15:17 | 10.40 | 0.316 | 
| ... | ................... | ..... | ..... | 

timestamps不是唯一的,所以解決這個之前,我不能轉換爲TimeArray。如何摺疊重複timestamps,取價格的平均值和總量?

謝謝你的指點!

回答

3

您可以使用by

df = DataFrame(
    cat = ["a", "b", "c","a"], 
    prices = [1,2,3,4], 
    vol = [10,20,30,40], 
) 

df2 = by(df, :cat) do sub 
     t = DataFrame(prices=mean(sub[:prices]), vol=sum(sub[:vol])) 
end 

df2 

3×3 DataFrames.DataFrame 
│ Row │ cat │ prices │ vol │ 
├─────┼─────┼────────┼─────┤ 
│ 1 │ "a" │ 2.5 │ 50 │ 
│ 2 │ "b" │ 2.0 │ 20 │ 
│ 3 │ "c" │ 3.0 │ 30 │ 

如果你必須做出白天/月有些合計/等你可能會在this so answer興趣也。

+0

感謝您的快速回答。你能澄清't'變量的用途嗎? – Constantin

+0

它只是一個臨時變量,作爲do塊中的最後一個,是返回的變量。 – Antonello