Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在django模板中动态访问给定的dataframe列?_Javascript_Python_Django_Pandas_Plotly - Fatal编程技术网

Javascript 如何在django模板中动态访问给定的dataframe列?

Javascript 如何在django模板中动态访问给定的dataframe列?,javascript,python,django,pandas,plotly,Javascript,Python,Django,Pandas,Plotly,我有一些指示符对象,每个指示符都有一个包含数据帧的属性内容。可以通过使用指示符对象的访问器getContent来访问此类内容。指标可以是单变量或多变量。多变量一有多个列 我事先不知道这些数据帧的列的名称。但是,我希望能够访问Django模板中的这些列,以便绘制指示器。基本上,可以使用属性“.columns”在数据帧上进行迭代。但它似乎不起作用 请在下面找到我尝试的内容,我想补充一点,我的目标是使用Plotly进行一些绘图: <script> Some code with the co

我有一些指示符对象,每个指示符都有一个包含数据帧的属性内容。可以通过使用指示符对象的访问器getContent来访问此类内容。指标可以是单变量或多变量。多变量一有多个列

我事先不知道这些数据帧的列的名称。但是,我希望能够访问Django模板中的这些列,以便绘制指示器。基本上,可以使用属性“.columns”在数据帧上进行迭代。但它似乎不起作用

请在下面找到我尝试的内容,我想补充一点,我的目标是使用Plotly进行一些绘图:

<script>
Some code with the container definition ...
{% if indicator.isUnivariate %}
    Plotly.plot(
        container,
        [
            {
                x: [{% for x in indicator.getContent.index.values|slice:":-1" %}"{{ x }}",{% endfor %}],
                y: [{% for y in indicator.getContent.y.values|slice:":-1" %}{{ y }}, {% endfor %}],
                name: '{{ indicator.getId }}',
                mode: 'lines+markers',
                type: 'scatter'
            }
        ],
        {
            xaxis: {title: {text: "Calendar months"}},
            yaxis: {title: {text: "Indicator values"}},
        }
    );
{% else %}
    alert(indicator.getId)
    Plotly.plot(
        container,
        [
            {% for column in indicator.getContent.columns %}
                {
                    x: [{% for x in indicator.getContent.index.values|slice:":-1" %}"{{ x }}",{% endfor %}],
                    y: [{% for y in column.values|slice:":-1" %}{{ y }}, {% endfor %}],
                    name: '{{ column }}',
                    mode: 'lines+markers',
                    type: 'scatter'
                }
            {% endfor %}
        ],
        {
            xaxis: {title: {text: "Calendar months"}},
            yaxis: {title: {text: "Indicator values"}},
        }
    );
{% endif %}
</script>

一些带有容器定义的代码。。。
{%if indicator.isUnivariate%}
密谋(
集装箱,
[
{
x:[{%forx在indicator.getContent.index.values | slice::-1“%}”{{{x}},{%endfor%}],
y:[{%y代表indicator.getContent.y.values | slice::-1“%}{{{y},{%endfor%}],
名称:“{indicator.getId}}”,
模式:“行+标记”,
键入:“散布”
}
],
{
xaxis:{title:{text:“日历月”},
yaxis:{title:{text:“指示符值”},
}
);
{%else%}
警报(indicator.getId)
密谋(
集装箱,
[
{indicator.getContent.columns%%中的列的百分比}
{
x:[{%forx在indicator.getContent.index.values | slice::-1“%}”{{{x}},{%endfor%}],
y:[{%表示列中的y。值|切片::-1“%}{{{y},{%endfor%}],
名称:“{column}}”,
模式:“行+标记”,
键入:“散布”
}
{%endfor%}
],
{
xaxis:{title:{text:“日历月”},
yaxis:{title:{text:“指示符值”},
}
);
{%endif%}
例外情况: django.template.exceptions.TemplateSyntaxError:无法分析某些字符:indicator.getContent |[column]。values | | slice::-1“

希望这是明确的,不要犹豫,让我知道如果你想要更多的细节。
谢谢:)

如果你有
为什么要做
指标.getContent[栏]
?您不能在Django模板中下标,因此
[column]
不起作用。这不是索引,而是列本身。但是您已经有了
,因此
{%y在列中。值| slice::-1“%}
应该可以工作,谢谢您的评论。它似乎不起作用,但它可能是由于我给你的细节。因此,我编辑了我原来的帖子,添加了更多的解释和更多的代码。谢谢:)我强烈建议您完全重新编写代码,将Django在标记内部的呈现限制为解析JSON的一行代码。您将控制器逻辑与模板逻辑混合,并动态呈现JavaScript。这是一种反模式。在视图中准备数据,执行JSON.dump(上下文),然后解析模板中的JSON字符串,并使用JavaScript处理数据。模板引擎不是为计算而设计的:这就是为什么你有视图。py我注意到你在Saturnix上的评论,但我认为我的数据已经准备好了,至少对于我想做的事情。基本上,每个指标内容都有一个索引和一些与指标值相对应的列(取决于它是否为单变量)。所以,我只想访问这些列。请告诉我们新模板中的错误是什么。显示的错误不能再发生了。