Skip to content

Q: Faster way to Filter DataView #6164

Description

@torronen

I filter data from a dataview to get all items within a specific time period.
It seems slow compared to filtering with LINQ from objects in memory. Is there a faster way to do it?

var boolFilter = df["timestamp"].ElementwiseGreaterThanOrEqual(unixStartTime);
var hourlydata = df.Filter(boolFilter);
var boolFilter2 = hourlydata["timestamp"].ElementwiseLessThan(unixEndTime);
hourlydata = hourlydata.Filter(boolFilter2);

In this example, I am creating predictions for a certain time period at a time.
In another example, I may need to filter by exact match. Normally, I might create a dictionary to help, but is there a way to support some type "indices" for DataViews?

Activity

  1. ghost added
    untriagedNew issue has not been triaged
    on Apr 20, 2022
  2. luisquintanilla commented on Apr 25, 2022

    @luisquintanilla
    Contributor

    Hi @torronen

    Is this for the DataView or DataFrame? Looks like DataFrame, but just wanted to confirm before tagging it.

  3. torronen commented on Apr 25, 2022

    @torronen
    ContributorAuthor

    @luisquintanilla yes, you are correct, it is DataFrame.

  4. luisquintanilla commented on Apr 25, 2022

    @luisquintanilla
    Contributor

    Thanks for that clarification.

  5. michaelgsharp commented on Apr 27, 2022

    @michaelgsharp
    Contributor

    What do you mean by "support some type indices"? Also, do you have any numbers for speed between this and LINQ? It would be good to see how far behind we really are.

  6. added this to the ML.NET Future milestone on Apr 27, 2022
  7. torronen commented on Apr 27, 2022

    @torronen
    ContributorAuthor

    @michaelgsharp I am thinking about something like a dictionary or hashset to select items quickly. For example, I might want get metrics for observations from each city separately: one test set for Helsinki, 2nd for Seattle etc.

    Getting the numbers is a good point to validate it. Actually, this issue is mostly about my perception of slowness and I do not yet have an exact comparison. I will do some, but I might not be able to get them very quickly.

  8. asmirnov82 commented on Oct 19, 2023

    @asmirnov82
    Contributor

    Some increase in performance of Filtering should be achieved with #6869.

  9. rosebyte commented on Sep 30, 2026

    @rosebyte
    Member

    Triage: we don't see enough demand for such a large change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-DataFrameMicrosoft.Data.Analysis DataFrame APIsenhancementNew feature or requestyellowmaintenance only

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions