DataFrame ist ein sehr nützliches Bibliotheksobjekt, das häufig beim Arbeiten mit Daten in Python- oder R-Sprache oder beim maschinellen Lernen verwendet wird. Es verfügt über verschiedene Funktionen zur Verarbeitung von Tabellendaten und zweidimensionalen Arraydaten. https://amalog.hateblo.jp/entry/kaggle-pandas-tips
Wie bequem es ist, dass es unverzichtbar ist, wenn 2D-Daten verwendet werden, z. B. Daten aus Excel oder CSV gleichzeitig lesen, eine beliebige Matrix eines 2D-Arrays extrahieren, Tabellen wie SQL-Operationen verknüpfen usw. Es ist ein Level, das nicht gemacht werden kann.
Bei Java gibt es jedoch keine Implementierung, die DataFrame entspricht. Daher kann ich nicht von DataFrame profitieren. Die Verarbeitung von Daten dauert einige Zeit und ich bin traurig über missbräuchliche Wörter (?). Warum ist es Python? Deshalb.
Morpheus data science framework
Dort gibt es jedoch einen Lichtstrahl. Das Morpheus Data Science Framework bietet (wahrscheinlich) äquivalente Funktionen zu diesem DataFrame. https://github.com/zavtech/morpheus-core
Versuchen wir es nach einem einfachen Beispiel.
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.
Wir werden Fahrzeugkenndaten verwenden (in diesem Beispiel). Laden Sie die CSV in Morpheus DataFrame, filtern Sie die Zeilen nach Leistungsgewichtsverhältnissen (PS) größer als 0,1 und fügen Sie eine Spalte für MPG-Verhältnisse zwischen Autobahn und Stadt hinzu. Sortieren Sie nach den hinzugefügten Spalten und geben Sie die Ergebnisse in eine CSV-Datei aus.
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");
});
}
}
Da der Rückgabetyp der DataFrame-Typ ist, können Sie in der Methodenkette nacheinander csv (), select (), add (), sort () ausführen. Der Bereich um csv () ist sehr DataFrame-ähnlich.
Daten vor der Verarbeitung
Verarbeitete Daten
DataFrame ist reich an Funktionen und es ist nicht einfach, die Gleichheit zu testen, aber ich konnte Vorgänge wie Zeilenextraktion, Spaltenaddition und Sortierung sehen.
Wenn Sie Daten mit Java verarbeiten, können Sie diese verwenden.
Recommended Posts