DataFrames
DataFrames store data in rows and columns, where cells are scalars. The idea in Arc-Lang is to build up DataFrames incrementally.
extern type DataFrame;
extern def df(): DataFrame;
extern def append[T: BaseRow](DataFrame, T);
extern def head(DataFrame, i32): DataFrame;
extern def tail(DataFrame, i32): DataFrame;
extern def take(DataFrame, i32): DataFrame;
extern def join(DataFrame, DataFrame, [String], [String]): DataFrame;
val df = DataFrame(
{name: "John"
, age: 30
, city: "New York"
},
{name: "Jane"
, age: 22
, city: "San Francisco"
},
{name: "Joe"
, age: 49
, city: "Boston"
},
{name: "Jill"
, age: 35
, city: "New York"
},
);
df.append({name: "Mary"
, age: 12
});
val df = DataFrame({
"name"
: ["John"
, "Jane"
, "Joe"
, "Jill"
],
"age"
: [30
, 22
, 49
, 35
],
"city"
: ["New York"
, "San Francisco"
, "Boston"
, "New York"
]}
);
df.append({"name"
: "Mary"
, "age"
: 12
});
extern type Series;
extern def df(data: Array[Series]?): DataFrame;
extern def series[T: Scalar](name: String, data: Array[T]);
extern def Series[T: Scalar](name: String, values: Array[T]): Series;
extern def __index__(df: DataFrame, col: i32): Array[String];
extern def ds(): DataSet;
extern def append[T](DataSet[T], T);
extern def head[T](DataSet[T], i32): DataSet[T];
extern def tail[T](DataSet[T], i32): DataSet[T];
extern def take[T](DataSet[T], i32): DataSet[T];
extern def join_df[A, B](DataSet[A], DataSet[B], [String], [String]): DataSet[A ++ B];
A series is a named one-dimensional array of data representing a column in a DataFrame.
val obj = {"name"
: "John"
, "age"
: 30
, "city"
: "New York"
};
val name = obj["name"
];