[Task] Using DataFrame level sum, count, min, max, std, var functions in Ops

Open
#64 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

Start by locating the Ops that iterate over dataframe columns for sum, count, min, max, std, var, or mean, then read the corresponding cuDF DataFrame aggregation documentation linked in the issue. Done means the relevant Ops use dataframe-level functions rather than per-column calls, with existing behavior preserved and any available tests or benchmarks checked.

Written by the indexing model from the issue text.

Description

Issue by oyilmaz-nvidia
Monday Jun 01, 2020 at 15:07 GMT
Originally opened as https://github.com/rapidsai/recsys/issues/188


Right now in nvtabular, we go over all the columns of a dataframe one by one to run the functions like sum, count, min, max, etc.

We made feature requests for these functions to be available in dataframe level and cudf team let me know that they are available in branch-0.14.

Here are the doc links for these functions;
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.sum
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.count
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.max
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.min
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.var
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.std
https://docs.rapids.ai/api/cudf/nightly/api.html#cudf.core.dataframe.DataFrame.mean

The Ops that are using these functions should be updated to call these functions in the dataframe level. Hoping that these dataframe level functions are implemented in an optimal way so that we can see some speedup in our ops.

Dominant language
Python
Stars
1.2k
Forks
149
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NVIDIA-Merlin/NVTabular

All issues in NVIDIA-Merlin/NVTabular

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.