我有一个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
,取价格的平均值和总和?
感谢您的任何指示!
答案 0 :(得分: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感兴趣。