label_name = line['label'] color = line['color'] line = Lines(x=input_df['datetime'][::stride], y=input_df[col_name][::stride], scales={ 'x': date_co, 'y': linear_co }, colors=[color], labels=[label_name], display_legend=True) lines.append(line) new_fig = Figure(marks=lines, axes=[yax, xax], title=self.conf['title'], interaction=panzoom_main) return new_fig if __name__ == "__main__": from gquant.dataloader.csvStockLoader import CsvStockLoader from gquant.transform.averageNode import AverageNode from gquant.analysis.outCsvNode import OutCsvNode loader = CsvStockLoader("id0", {}, True, False) df = loader([]) vf = AverageNode("id1", {"column": "volume"}) df2 = vf([df]) o = OutCsvNode("id3", {"path": "o.csv"}) o([df2])
class AssetFilterNode(Node): def process(self, inputs): """ select the asset based on asset id, which is defined in `asset` in the nodes' conf Arguments ------- inputs: list list of input dataframes. Returns ------- dataframe """ input_df = inputs[0] output_df = input_df.query('asset==%s' % self.conf["asset"]) return output_df def columns_setup(self): self.required = {"asset": "int64"} if __name__ == "__main__": from gquant.dataloader.csvStockLoader import CsvStockLoader loader = CsvStockLoader("node_csvdata", {}, True, False) df = loader([]) sf = AssetFilterNode("id2", {"asset": 22123}) df2 = sf([df])