[PYTHON] Utiliser DataFrame en Java

Connaissez-vous DataFrame?

DataFrame est un objet de bibliothèque très utile qui est souvent utilisé lorsque vous travaillez avec des données en langage Python ou R ou lorsque vous souhaitez faire du machine learning. Il a diverses fonctions pour gérer les données tabulaires et les données de tableau à 2 dimensions. https://amalog.hateblo.jp/entry/kaggle-pandas-tips

Comme c'est pratique, c'est indispensable lors de l'utilisation de données 2D, comme la lecture de données à partir d'Excel ou CSV à la fois, l'extraction d'une matrice arbitraire d'un tableau 2D, la jonction de tables comme des opérations SQL, etc. C'est un niveau qui ne peut pas être fait.

Mais avec Java, il n'y a pas d'implémentation équivalente à DataFrame, donc je ne peux pas bénéficier de DataFrame, il faut du temps pour traiter les données, et je suis attristé par les mots abusifs (?) Pourquoi est-ce Python? Voilà pourquoi.

Morpheus data science framework

Cependant, il y a un rayon de lumière là-bas. Le framework de science des données Morpheus fournit (probablement) des fonctionnalités équivalentes à ce DataFrame. https://github.com/zavtech/morpheus-core

Essayons-le selon un exemple simple.

Consider a dataset of motor vehicle characteristics accessible here. The code below loads this CSV data into a Morpheus DataFrame, filters the rows to only include those vehicles that have a power to weight ratio > 0.1 (where weight is converted into kilograms), then adds a column to record the relative efficiency between highway and city mileage (MPG), sorts the rows by this newly added column in descending order, and finally records this transformed result to a CSV file.

Nous utiliserons les données caractéristiques de la voiture (dans cet échantillon). Chargez le CSV dans le Morpheus DataFrame, filtrez les lignes pour les rapports de poids de sortie (puissance) supérieurs à 0,1 et ajoutez une colonne pour le rapport MPG autoroute / urbain. Triez en fonction des colonnes ajoutées et exportez les résultats dans un fichier CSV.

Exemple de code et résultat d'exécution

import com.zavtech.morpheus.frame.*;

public class MorpheusTester {

    public static void main(String[] args) {

        DataFrame.read().csv(options -> {
            options.setResource("http://zavtech.com/data/samples/cars93.csv");
            options.setExcludeColumnIndexes(0);
        }).rows().select(row -> {
            double weightKG = row.getDouble("Weight") * 0.453592d;
            double horsepower = row.getDouble("Horsepower");
            return horsepower / weightKG > 0.1d;
        }).cols().add("MPG(Highway/City)", Double.class, v -> {
            double cityMpg = v.row().getDouble("MPG.city");
            double highwayMpg = v.row().getDouble("MPG.highway");
            return highwayMpg / cityMpg;
        }).rows().sort(false, "MPG(Highway/City)").write().csv(options -> {
            options.setFile("./cars93m.csv");
            options.setTitle("DataFrame");
        });

    }
}

Puisque le type de retour est le type DataFrame, vous pouvez exécuter csv (), select (), add (), sort () successivement dans la chaîne de méthodes. La zone autour de csv () ressemble beaucoup à DataFrame.

DataFrame est riche en fonctionnalités et il n'est pas facile de tester l'égalité, mais j'ai pu voir des opérations telles que l'extraction de lignes, l'ajout de colonnes et le tri.

Lors du traitement de données avec Java, vous pouvez envisager de l'utiliser.

Recommended Posts

Utiliser DataFrame en Java
Utiliser Mean avec DataFrame
Modèle de façade en Java
Motif singleton en Java
Modèle de poids mouche en Java
Utilisez config.ini avec Python
Modèle d'observateur en Java
Utiliser des dates en Python
Modèle d'itérateur en Java
Utiliser Valgrind avec Python
Modèle de décorateur en Java
Utiliser ujson dans les requêtes
Utiliser le profileur en Python
Modèle de prototype en Java
Modèle de proxy en Java
Voyons comment utiliser def en python
Utiliser l'expression let en Python
Utiliser Anaconda dans un environnement pyenv
Utiliser la fonction de rappel en Python
Utiliser le magasin de paramètres en Python
Utiliser le cache HTTP en Python
Utiliser des expressions régulières en C
Utilisez l'ODM de MongoDB avec Python
Utiliser un dict clé de liste en Python
Utiliser Random Forest avec Python
Utilisez Spyder de Python IDE
Modèle de méthode de modèle en Java
Utilisons Juman ++ en mode serveur
-Solution pour l'adresse déjà utilisée
Utilisez <input type = "date"> avec Flask
Mettre en œuvre un test piloté par table en Java
Détectez et traitez les signaux en Java.
Pandas / DataFrame Conseils pour une utilisation pratique
Utilisez le modèle jinja2 dans un fichier Excel
Utilisez le tissu tel quel en python (fabric3)
Comment utiliser les classes dans Theano
Mock in python - Comment utiliser mox
Utiliser watchdog (watchmedo) dans le développement piloté par les tests
Comment utiliser SQLite en Python
Modèle de chaîne de responsabilité en Java
Utiliser rospy avec virtualenv dans Python3
Utiliser des API non implémentées dans twython
Comment utiliser Mysql avec python
Utiliser Python mis en pyenv avec NeoVim
Comment utiliser ChemSpider en Python
Mise en œuvre du tri à bulles en Java (BubbleSort)
Comment utiliser PubChem avec Python
Utilisez django-debug-toolbar dans l'environnement VirtualBox / Vagrant
Utiliser OpenCV avec Python 3 dans Window
Comment utiliser les colonnes calculées dans CASTable
Chevauchement d'expressions régulières en Python et Java
Utilisez les fonctionnalités de type évoluées dans Sphinx-2.4
Utiliser l'impression dans l'expression lambda Python2
Utilisation du fichier de contraintes ajouté dans pip 7.1
[Python] Afficher le bloc de données dans la console de débogage VScode
Dans gunicorn (> = 19.2), utilisez max_requests_jitter avec max_requests
Utilisez tensorflow dans un environnement sans racine
Utilisez facilement vos propres fonctions en Python