Java-groupby方法

时间:2018-11-08 22:34:29

标签: java class dataframe methods group-by

我已经编写了一种将DataFrame对象分组的方法。我已经开始写它了,但是它不起作用,我也不知道该怎么做。

  

异常:java.lang.ArrayIndexOutOfBoundsException:0

我不知道该怎么做。有人可以帮我吗?

public Groups groupby(String colname){
    Groups g = new Groups();
    LinkedList<DataFrame> group = new LinkedList<>();
    g.ids = new String[1];
    g.ids[0] = colname;
    group.add(this.iloc(1));
    int size = 0;
    for(int i = 0; i<myDatabase.get(colname).size(); i++){
        Value value = myDatabase.get(colname).get(i);
        boolean added = false;
        int length = 0;
        for(DataFrame d : group){
            System.out.println("LOL");
            if(d.get(colname).get(0).equals(value)){
                added = true;
                for(String name : d.colNames){
                    Value v = myDatabase.get(name).get(i);
                    d.get(name).add(v);
                    length++;
                }
            }
        }

        if(added = false){
            group.add(iloc(i));
            size++;
            length++;

        }
    }

    g.len = new int[size];
    int i = 0;
    for(DataFrame df : group){
        g.len[i] = df.myDatabase.get(df.colNames[0]).size();
        i++;
        System.out.println(df.myDatabase.get(df.colNames[0]).size());
        System.out.println("LOL");
    }
    return g;
}
public Groups groupby(String[] colnames){
    LinkedList<DataFrame> temp = this.groupby(colnames[0]).grouped;
    Groups result = new Groups();
    int s = 0;
    if(colnames.length > 1){
        s = 1;
    }
    for(int i = s; i < colnames.length; i++){
        for(DataFrame d : temp){
            LinkedList<DataFrame> groups = d.groupby(colnames[i]).grouped;
            for (DataFrame df : groups){
                result.grouped.add(df);
            }
        }
    }
    int index = 0;
    result.len = new int[result.grouped.size()];
    for(DataFrame gr : result.grouped){
        result.len[index] = gr.size();
        index++;
    }
    result.ids = colnames;
    return result;
}

我的DataFrame类如下:

public class DataFrame {

    private Map<String, ArrayList<Value>> myDatabase;
    protected Map<String, Class<? extends Value>> colType;
    protected String [] colNames;
    protected ArrayList<Class<? extends Value>> dTypes;

0 个答案:

没有答案