我想获得有关import numpy as np
import pandas as pd
df = pd.DataFrame({
"A":[0,0,0,0,0,1,2,2,3,3,3],
"B":[0,1,2,0,1,2,0,2,0,1,1],
"C":[.654,.123,1.45,6.1,0.322,1.77,9.234,2.54,1,6.77,6.438]})
grouped = df.groupby(["A","B"]).agg("mean")
# how to transform grouped into res?
res = pd.DataFrame({
"A":[0,1,2,3],
"C0":[3.377,np.nan,9.234,1],
"C1":[0.2225,np.nan,np.nan,6.604],
"C2":[1.45,1.77,2.54,np.nan]})
和get()
类的一些指标,因为遇到了一个问题,并且试图理解原因。
我有一个get_context_data()
,可以显示带有多个查询集的一些统计信息。在同一课程中,我有一个Django DetailView
,它显示了来自get queryset的结果。
我的代码如下:
query string
像这样,class StatsView(DetailView):
""" Create statistics pageview """
template_name = 'app/stats.html'
def get(self, request):
return render(request, self.template_name, context)
def set_if_not_none(self, mapping, key, value):
if value is not None:
if len(value) != 0:
mapping[key] = value
def get_context_data(self, **kwargs):
return context_data
函数不起作用,但是当我在注释中设置get_context_data()
时,它可以正常工作。我认为自己有一个小误会。
也许我没有使用好的django通用显示视图,或者不可能在同一个类中一起使用get()
和get()
?
谢谢
我阅读了Django文档,但我想从您那里获得解释
编辑:
我正在尝试将查询集从get_context_data()
方法传递到get()
。然后,我删除了get_context_data()
方法,将get()
更改为DetailView
,它仅适用于TemplateView
。但是,如何在没有get_context_data()
方法的情况下添加“骨架”呢?
答案 0 :(得分:1)
我正在尝试将查询集从get()方法传递给get_context_data()
class StatsView(DetailView):
""" Create statistics pageview """
template_name = 'app/stats.html'
def get(self, request, *args, **kwargs):
queryset = SampleModel.objects.all()
return render(request, self.template_name, context=self.get_context_data(queryset=queryset))
def set_if_not_none(self, mapping, key, value):
if value is not None:
if len(value) != 0:
mapping[key] = value
def get_context_data(self, **kwargs):
qs = kwargs.get('queryset')
# do something
如果您要覆盖的 get_context_data()
方法,建议将super()
方法称为
class StatsView(DetailView):
# your code
def get_context_data(self, **kwargs):
data = super(StatsView, self).get_context_data(**kwargs)
data.update({"foo": "bar"})
return data
在这里已经很好回答了我想获得有关
的一些指标get()
和get_context_data()