DataFrames.jl VS scikit-learn

Compare DataFrames.jl vs scikit-learn and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
DataFrames.jl scikit-learn
9 82
1,696 58,200
1.0% 0.6%
7.0 9.9
17 days ago 2 days ago
Julia Python
GNU General Public License v3.0 or later BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

DataFrames.jl

Posts with mentions or reviews of DataFrames.jl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-30.
  • Julia's latency: Past, present and future
    1 project | news.ycombinator.com | 1 Apr 2023
    I don't think we've seen the final state of it though. v1.9 really gives people the proper tools for solving latency problems. Before, invalidations hurt a little, but it was also kind of a wash because LLVM code didn't precompile, so you could spend time setting up a Snoopprecompile and fix some invalidations and end up LLVM bound saving 1 second out of 20. But with package images it's almost always better to fix precompilation. The only thing hampering time much now is the `using` time went up, but as mentioned in the Reddit post there's a lot of ideas for what to do there. The other thing is package extensions, which cut down the amount of code to load. There's tons of PRs floating around the ecosystem turning things into extensions, and thus cutting down the overall code that is actually ran and loaded.

    This means that in a few months, people will start to see some major tangible benefits from following the compilation improvement practices laid out here and https://sciml.ai/news/2022/09/21/compile_time/. I think then you'll have a lot more people start to take all of these new tools seriously and it will be standard to incorporate them into packages. Right now they are still kind of niche things for packages with known TTFX problems, but I think come v1.9 you'll see every major package use all of these methods.

    > Different packages are affected differently

    I think this is one of the pieces that's effected by this. I don't think "Julia has become optimised for running Plots.jl" is quite correct. Julia's compilation and runtime is much more optimized for well-inferred code, which Plots.jl is not. However, the compiler developers have been using Plots.jl as a test case for all of these new tools, and therefore its SnoopPrecompile and invalidations have gotten some dramatic improvements because those required ecosystem changes I mentioned are being done by the compiler team for this specific package. Plots.jl had things like precompilation snooping way back before there was even a package for it, the earliest I know of was around v1.0. Meanwhile, DataFrames.jl only setup its precompilation snooping 7 months ago (https://github.com/JuliaData/DataFrames.jl/pull/3182), which I would presume was just in time for the v1.8 mark on your plot and is one of the big reasons for having a sudden drop (which continues into v1.9 because of package images).

    What I mean to say then is that, I think all packages will get the improvements we've seen from Plots.jl, but package authors will need to update their packages in order for that to happen. Some packages have already done this, many have not.

  • IJulia: The Julia Notebook
    2 projects | dev.to | 30 Mar 2023
    IJulia also supports viewing and manipulating tables. To create a table, first install the DataFrames.jl package by running the following command in a new cell:
  • Machine learning with Julia - Solve Titanic competition on Kaggle and deploy trained AI model as a web service
    13 projects | dev.to | 17 Feb 2023
    It were just a few percents of all possible manipulations that you can do with data using DataFrames.jl library. Read more about it in the documentation.
  • Unleashing the Power of Julia: Top 5 Must-Have Packages
    2 projects | dev.to | 27 Jan 2023
    DataFrames.jl
  • Automate the boring stuff with Julia?
    3 projects | /r/Julia | 27 Mar 2022
    DataFrames.jl and XLSX.jl for JSON, CSV, and XLSX files
  • What would it take to recreate dplyr in Python?
    3 projects | news.ycombinator.com | 17 Jan 2022
  • Dataframes.jl version 1.0: Tools for working with tabular data in Julia
    1 project | news.ycombinator.com | 6 May 2021
  • Teaching Python
    3 projects | /r/learnpython | 30 Apr 2021
    Julia also has the CSV.jl library for reading/writing csv files, the DataFrames.jl library for manipulating data like pandas, and Images.jl for image processing/analysis. However, since Julia is so much newer than Python, the Julia libraries are almost never as feature rich as their Python counterparts.
  • Polars (Rust DataFrame library) join algorithm fastest in db-benchmark
    2 projects | /r/rust | 12 Mar 2021
    Looks like it's single threaded according to this open issue: https://github.com/JuliaData/DataFrames.jl/issues/2626

scikit-learn

Posts with mentions or reviews of scikit-learn. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-09.
  • How to Build a Logistic Regression Model: A Spam-filter Tutorial
    1 project | dev.to | 5 May 2024
    Online Courses: Coursera: "Machine Learning" by Andrew Ng edX: "Introduction to Machine Learning" by MIT Tutorials: Scikit-learn documentation: https://scikit-learn.org/ Kaggle Learn: https://www.kaggle.com/learn Books: "Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow" by Aurélien Géron "The Elements of Statistical Learning" by Trevor Hastie, Robert Tibshirani, and Jerome Friedman By understanding the core concepts of logistic regression, its limitations, and exploring further resources, you'll be well-equipped to navigate the exciting world of machine learning!
  • AutoCodeRover resolves 22% of real-world GitHub in SWE-bench lite
    8 projects | news.ycombinator.com | 9 Apr 2024
    Thank you for your interest. There are some interesting examples in the SWE-bench-lite benchmark which are resolved by AutoCodeRover:

    - From sympy: https://github.com/sympy/sympy/issues/13643. AutoCodeRover's patch for it: https://github.com/nus-apr/auto-code-rover/blob/main/results...

    - Another one from scikit-learn: https://github.com/scikit-learn/scikit-learn/issues/13070. AutoCodeRover's patch (https://github.com/nus-apr/auto-code-rover/blob/main/results...) modified a few lines below (compared to the developer patch) and wrote a different comment.

    There are more examples in the results directory (https://github.com/nus-apr/auto-code-rover/tree/main/results).

  • Polars
    11 projects | news.ycombinator.com | 8 Jan 2024
    sklearn is adding support through the dataframe interchange protocol (https://github.com/scikit-learn/scikit-learn/issues/25896). scipy, as far as I know, doesn't explicitly support dataframes (it just happens to work when you wrap a Series in `np.array` or `np.asarray`). I don't know about PyTorch but in general you can convert to numpy.
  • [D] Major bug in Scikit-Learn's implementation of F-1 score
    2 projects | /r/MachineLearning | 8 Dec 2023
    Wow, from the upvotes on this comment, it really seems like a lot of people think that this is the correct behavior! I have to say I disagree, but if that's what you think, don't just sit there upvoting comments on Reddit; instead go to this PR and tell the Scikit-Learn maintainers not to "fix" this "bug", which they are currently planning to do!
  • Contraction Clustering (RASTER): A fast clustering algorithm
    1 project | news.ycombinator.com | 27 Nov 2023
  • Ask HN: Learning new coding patterns – how to start?
    3 projects | news.ycombinator.com | 10 Nov 2023
    I was in a similar boat to yours - Worked in data science and since then have made a move to data engineering and software engineering for ML services.

    I would recommend you look into the Design Patterns book by the Gang of Four. I found it particularly helpful to make extensible code that doesn't break specially with abstract classes, builders and factories. I would also recommend looking into the book The Object Oriented Thought Process to understand why traditional OOP is build the way it is.

    You can also look into the source code of popular data science libraries such as sklearn (https://github.com/scikit-learn/scikit-learn/tree/main/sklea...) and see how a lot of them have Base classes to define shared functionality between object of the same nature.

    As others mentioned, I would also encourage you to try and implement design patterns in your everyday work - maybe you can make a Factory to load models or preprocessors that follow the same Abstract class?

  • Transformers as Support Vector Machines
    1 project | news.ycombinator.com | 3 Sep 2023
    It looks like you've been the victim of some misinformation. As Dr_Birdbrain said, an SVM is a convex problem with unique global optimum. sklearn.SVC relies on libsvm which initializes the weights to 0 [0]. The random state is only used to shuffle the data to make probability estimates with Platt scaling [1]. Of the random_state parameter, the sklearn documentation for SVC [2] says

    Controls the pseudo random number generation for shuffling the data for probability estimates. Ignored when probability is False. Pass an int for reproducible output across multiple function calls. See Glossary.

    [0] https://github.com/scikit-learn/scikit-learn/blob/2a2772a87b...

    [1] https://en.wikipedia.org/wiki/Platt_scaling

    [2] https://scikit-learn.org/stable/modules/generated/sklearn.sv...

  • How to Build and Deploy a Machine Learning model using Docker
    5 projects | dev.to | 30 Jul 2023
    Scikit-learn Documentation
  • Planning to get a laptop for ML/DL, is this good enough at the price point or are there better options at/below this price point?
    1 project | /r/developersIndia | 17 Jun 2023
  • Link Prediction With node2vec in Physics Collaboration Network
    4 projects | dev.to | 16 Jun 2023
    Firstly, we need a connection to Memgraph so we can get edges, split them into two parts (train set and test set). For edge splitting, we will use scikit-learn. In order to make a connection towards Memgraph, we will use gqlalchemy.

What are some alternatives?

When comparing DataFrames.jl and scikit-learn you can also consider the following projects:

polars - Dataframes powered by a multithreaded, vectorized query engine, written in Rust

Prophet - Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.

Tables.jl - An interface for tables in Julia

Surprise - A Python scikit for building and analyzing recommender systems

DataFramesMeta.jl - Metaprogramming tools for DataFrames

Keras - Deep Learning for humans

Plots.jl - Powerful convenience for Julia visualizations and data analysis

tensorflow - An Open Source Machine Learning Framework for Everyone

MPI.jl - MPI wrappers for Julia

gensim - Topic Modelling for Humans

Curry.jl - Currying for Julia

H2O - H2O is an Open Source, Distributed, Fast & Scalable Machine Learning Platform: Deep Learning, Gradient Boosting (GBM) & XGBoost, Random Forest, Generalized Linear Modeling (GLM with Elastic Net), K-Means, PCA, Generalized Additive Models (GAM), RuleFit, Support Vector Machine (SVM), Stacked Ensembles, Automatic Machine Learning (AutoML), etc.