前言
由于用惯了python中的pandas,在写java代码时也想找找类似的框架,便发现了Joinery。
Meaven配置
<dependency>
<groupId>joinery</groupId>
<artifactId>joinery-dataframe</artifactId>
<version>1.9</version>
</dependency>
如果需要处理csv的话,还得添加一个依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
简单演示
import java.io.IOException;
import java.util.Arrays;
import java.util.Set;
import joinery.DataFrame;
public class Demo {
public static void main(String[] args) {
//创建
DataFrame<Object> df = new DataFrame<>("name", "value");
//添加数据
df.append(Arrays.asList("alpha", 1));
df.append(Arrays.asList("bravo", 2));
//行数
System.out.println(df.length());
//空表判断
System.out.println(df.isEmpty());
//多列合并成一列进行输出
System.out.println(df.flatten());
//计算常用统计量
System.out.println(df.mean().col("value"));
System.out.println(df.median().col("value"));
System.out.println(df.max().col("value"));
System.out.println(df.min().col("value"));
System.out.println(df.var().col("value"));
// 以下演示如何获取每一格的数据
Set<Object> indexs = df.index();
Set<Object> columns = df.columns();
for(Object index:indexs){
for(Object column:columns){
System.out.print(df.get(index, column));
System.out.print("\t");
}
System.out.println();
}
//保存为csv文件
try {
df.writeCsv("./test.csv");
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果如下
保存文件如下
相关资料
首先是Maven,里面可以选择更多版本的配置
https://mvnrepository.com/artifact/joinery/joinery-dataframe
然后是DataFrame的手册,可以在里面查找更多的方法,其实都和pandas的差不多。
http://cardillo.github.io/joinery/v1.9/api/reference/joinery/DataFrame.html
接着是GitHub地址,有兴趣的可以研究研究源码
https://github.com/cardillo/joinery