Comments (4)
Like so? (v4+):
dt.rollup({ values: op.array_agg_distinct(‘risk’) })
.get(‘values’, 0)
That is the most efficient route... Also note that your examples are not equivalent. In particular, Set
will treat different Date objects with the same date-time as distinct values, Arquero will treat them as the same value and de-duplicate it.
from arquero.
dt.groupby('risk').count().columnArray('risk')
works but is much less efficient: it first builds a map to get the unique groupby values, generates a new internal column containing all groupby index keys for the input table, and then calculates the counts as well.
The array_agg_distinct
aggregate function is much more efficient in terms of both time and memory so I would recommend it. If you find the syntax is too verbose, you could consider adding a new table method for convenience:
aq.addTableMethod('distinctArray', (table, columnName) => {
return table.rollup({ values: op.array_agg_distinct(columnName) }).get('values', 0);
});
// ...
dt.distinctArray('risk') // now returns array of distinct values
from arquero.
ok, thank you for the caveat regarding Set
and Date objects.
I think i will go on with
dt.groupby('risk').count().columnArray('risk')
which seems to me a bit easier to recall and teach
from arquero.
Thank you for the hint, i should really use addTableMethod more often!
Actually, as an happy Arquero user, it doesn't bother me too much to use a more verbose syntax or new methods like the one you suggest.
But as a teacher, i really want non JS specialists (and R users) to be able to use Arquero in the most simple and intuitive way, this is why i am a bit of a pain on these topics :)
from arquero.
Related Issues (20)
- Interpolate missing values
- arquero op.first_value function issue HOT 2
- table.print() should return table to enable chaining HOT 2
- Citation for academic paper HOT 2
- Nuxt 2.0 build failing due to apache-arrow exports HOT 6
- Add op functions to work with Map and Set objects HOT 1
- `fromCSV` fails with uncaught TypeError on CSV with headers only HOT 1
- Join ignores empty string as suffix
- Table expressions do not support underscores as numeric separators in numeric literals
- CSV parse functions don't get run on null values
- Failing during production build: minification problem? HOT 10
- Verb to drop columns by name? HOT 2
- derive can not handle string? HOT 2
- Table concatenation results in empty table
- Problems getting Arquero to find it's types in Typescript HOT 5
- array_agg and undefined/none values HOT 3
- fromArrow -> Unrecognized type: "undefined"
- COUNTIF-like aggregate function
- NextJS swcMinify is breaking arquero
- Apache Arrow 15 support HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arquero.