Mengolah Data Tabular Java
Library Pandas di Java – Yup kalian tidak salah baca! bila kalian pengguna python sudah sangat akrab sekali mengolah data berbasis tabular dengan pandas! atau kalian yang suka menggunakan R tentu akrab dengan dplyr dan tidyverse.
Data berbentuk tabular sering kita temui seperti excel, csv dengan keunggulan dalam mengolah data berbasis pivot, tentu kerjaan sorting dan query menjadi lebih mudah. Hampir semua library berbasis dataframe mempunyai mekanisme tersendiri untuk melakukan pivot table seperti join, merge dan banyak lainnya.
Berbanding functional programming (python dan R), java masih sering digunakan untuk data science walaupun cukup ribet karena harus dikompilasi kode agar bisa di run. Nah ngomong-ngomong Library Pandas di Java itu ada lho! namanya TableSaw dan tentu open Source
TableSaw – Java dataframe and visualization library
Tablesaw is Java for data science. It includes a dataframe and a visualization library, as well as utilities for loading, transforming, filtering, and summarizing data. It’s fast and careful with memory. If you work with data in Java, it may save you time and effort. Tablesaw also supports descriptive statistics and integrates well with the Smile machine learning library.
Bisa kalian peroleh di https://github.com/jtablesaw/tablesaw, gunakan maven ya! untuk add depenciesnya, saya menggunakan versi berikut
<dependency> <groupId>tech.tablesaw</groupId> <artifactId>tablesaw-core</artifactId> <version>0.38.3</version> </dependency>
Berikut tampilkan hasil generate grafik tablesaw
Mencoba TableSaw
TableSaw datang dengan dokumentasi yang sangat lengkap dan komunitasnya ini terus menerus berkembang. Kalian bisa pelajari dokumentasinya https://jtablesaw.github.io/tablesaw/gettingstarted
import tech.tablesaw.api.DoubleColumn; /** * * @author User */ public class Pandas { public static void main(String [] args){ //membuat kolom double[] numbers = {1, 2, 3, 4,10,30}; DoubleColumn nc = DoubleColumn.create("nc", numbers); System.out.println(nc.print()); //lakukan filtering DoubleColumn filtered = nc.where(nc.isLessThan(3)); System.out.println(filtered.print()); } }
Sederhana sekali ya! apalagi cara baca file *.csv nya juga sekali
Table bushTable = Table.read().csv("D:\\matang.txt"); System.out.println(bushTable.structure());
hasilnya
Structure of matang.txt Index | Column Name | Column Type | ----------------------------------------- 0 | File | STRING | 1 | B | DOUBLE | 2 | G | DOUBLE | 3 | R | DOUBLE |
Diatas dapat informasi nama header dan jenis typenya juga, OK, coba kita akses header B saja dan menampilkan isinya
DoubleColumn doubles = (DoubleColumn) bushTable.column("B"); System.out.println(doubles.print());
Membuat table
Untuk membuat table pun di tableSaw sangat mudah
String[] animals = {"bear", "cat", "giraffe"}; double[] cuteness = {90.1, 84.3, 99.7}; Table cuteAnimals = Table.create("Cute Animals") .addColumns( StringColumn.create("Animal types", animals), DoubleColumn.create("rating", cuteness)); System.out.println(cuteAnimals.print());