4

私は現在、分析の結果として pandas DataFrames を生成するプロジェクトに取り組んでいます。私は Django で開発しており、「結果」モデルの「データ」フィールドを使用して pandas DataFrame を保存したいと考えています。

HDF5(HDF Store) は、私の pandas DataFrames を格納する最も効率的な方法のようです。ただし、モデルにカスタム フィールドを作成して保存する方法がわかりません。説明のために、簡略化した views.py と models.py を以下に示します。

models.py

class Result(model.Model):
    scenario = models.ForeignKey(Scenario)

    # HOW DO I Store HDFStore
    data = models.HDF5Field()

ビュー.py

class AnalysisAPI(View):
    model = Result    

    def get(self, request):
        request_dict = request.GET.dict()
        scenario_id = request_dict['scenario_id']
        scenario = Scenario.objects.get(pk=scenario_id)
        result = self.model.objects.get(scenario=scenario)
        analysis_results_df = result.data['analysis_results_df']

        return JsonResponse(
            analysis_results_df.to_json(orient="records")
        )

    def post(self, request):
        request_dict = request.POST.dict()
        scenario_id = request_dict['scenario_id']
        scenario = Scenario.objects.get(pk=scenario_id)
        record_list = request_dict['record_list']

        analysis_results_df = run_analysis(record_list)
        data = HDFStore('store.h5')
        data['analysis_results_df'] = analysis_results_df         

        new_result = self.model(scenario=scenario, data=data)
        new_result.save()

        return JsonResponse(
            dict(status="OK", message="Analysis results saved.")
        )

また、Django で使用できるのであれば、同様のパフォーマンスを持つ Pickle などの別の保存方法も受け入れます。

4

2 に答える 2