DFJS
Installation
npm install -D dfjs
Usage
import DataFrame from 'dfjs';
var df = new DataFrame({
"meta": {
"columns": ["transaction_count", "sale"],
"keys": ["ymd", "h", "m", "s", "currency"]
},
"rows": [
[[20160101, 0, 0, 0, "KRW"], [1500, 7500000]],
[[20160101, 4, 0, 0, "KRW"], [200, 600000]],
[[20160101, 12, 0, 0, "KRW"], [500, 2000000]],
[[20160101, 18, 0, 0, "KRW"], [700, 2800000]],
[[20160101, 22, 0, 0, "KRW"], [1200, 5400000]],
[[20160102, 0, 0, 0, "KRW"], [1550, 7595000]],
[[20160102, 4, 0, 0, "KRW"], [180, 540000]],
[[20160102, 12, 0, 0, "KRW"], [450, 1350000]],
[[20160102, 18, 0, 0, "KRW"], [800, 3600000]],
[[20160102, 22, 0, 0, "KRW"], [1100, 6600000]],
[[20160103, 0, 0, 0, "KRW"], [1400, 8400000]],
[[20160103, 4, 0, 0, "KRW"], [250, 1375000]],
[[20160103, 12, 0, 0, "KRW"], [550, 3025000]],
[[20160103, 18, 0, 0, "KRW"], [700, 3850000]],
[[20160103, 22, 0, 0, "KRW"], [1300, 7150000]],
[[20160101, 0, 0, 0, "JPY"], [1500, 7500000]],
[[20160101, 4, 0, 0, "JPY"], [200, 600000]],
[[20160101, 12, 0, 0, "JPY"], [500, 2000000]],
[[20160101, 18, 0, 0, "JPY"], [700, 2800000]],
[[20160101, 22, 0, 0, "JPY"], [1200, 5400000]],
[[20160102, 0, 0, 0, "JPY"], [1550, 7595000]],
[[20160102, 4, 0, 0, "JPY"], [180, 540000]],
[[20160102, 12, 0, 0, "JPY"], [450, 1350000]],
[[20160102, 18, 0, 0, "JPY"], [800, 3600000]],
[[20160102, 22, 0, 0, "JPY"], [1100, 6600000]],
[[20160103, 0, 0, 0, "JPY"], [1400, 8400000]],
[[20160103, 4, 0, 0, "JPY"], [250, 1375000]],
[[20160103, 12, 0, 0, "JPY"], [550, 3025000]],
[[20160103, 18, 0, 0, "JPY"], [700, 3850000]],
[[20160103, 22, 0, 0, "JPY"], [1300, 7150000]]
]
});
var df2 = new DataFrame({
"meta": {
"columns": ["new_user_count"],
"keys": ["ymd"]
},
"rows": [
[[20160101], [500]],
[[20160103], [200]],
[[20160104], [170]]
]
});
var child1 = df.groupByKey(df.keys('ymd', 'currency'),
df.col('transaction_count').sum().rename('transaction_count'),
df.col('sale').sum(),
df.col('sale').max(),
df.col('sale').min());
var child2 = df.groupByKey(
df.keys('ymd'),
df.col('transaction_count').sum(),
df.col('sale').sum()).merge(df2).sort();
> child1.meta
Map {
"keys": List [ "ymd", "currency" ],
"columns": List [ "transaction_count", "sum(sale)", "max(sale)", "min(sale)" ]
}
> child2.meta
Map { "keys": List [ "ymd" ], "columns": List [ "$1.sum(transaction_count)", "$1.sum(sale)", "$2.new_user_count" ] }
> child2.rows.forEach((e) => console.log(e));
[ [ 20160101 ], [ 8200, 36600000, 500 ] ]
[ [ 20160102 ], [ 8160, 39370000, ] ]
[ [ 20160103 ], [ 8400, 47600000, 200 ] ]
[ [ 20160104 ], [ , , 170 ] ]