我需要建立一个django 下拉 forms.Form字段的指导,我可以在其中选择多个选项.我需要office在表单的字段上选择多个位置.
提交时,表单需要返回list所选办公室(例如["New York", "Los Angeles"]或["Austin"]).返回a tuple也是可以接受的.
我现在能做的最好是建立一个multipleChoiceField用于office下列要求:
from django import forms
class my_Form(forms.Form):
OPTIONS = [
("0", "*ALL"),
("1", "New York"),
("2", "Los Angeles"),
]
office = forms.MultipleChoiceField(
choices=OPTIONS,
initial='0',
widget=forms.SelectMultiple(),
required=True,
label='Office',
)
Run Code Online (Sandbox Code Playgroud)
导致此表单字段布局:
但是,我希望此字段为下拉列表,以减少页面上的空间.
我找到了这个djangosnippet但是(1)有些人提到它看起来过时了(我无法确认),以及(2)我首先要检查内置的django表单/小部件设置是否可以完成此任务使用自定义代码.
我已经从scikit-learn的SGDClassifier包中成功运行了一个逻辑回归模型,但是SGDClassifier.coef_由于输入数据是通过scikit-learn的OneHotEncoder进行转换的,因此无法轻松解释该模型的系数(通过访问)。
我的原始输入数据X的形状为(12000,11):
X = np.array([[1,4,3...9,4,1],
[5,9,2...3,1,4],
...
[7,8,1...6,7,8]
])
Run Code Online (Sandbox Code Playgroud)
然后,我应用了一种热编码:
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
X_OHE = enc.fit_transform(X).toarray()
Run Code Online (Sandbox Code Playgroud)
产生形状数组(12000,696):
X_OHE = np.array([[1,0,1...0,0,1],
[0,0,0...0,1,0],
...
[1,0,1...0,0,1]
])
Run Code Online (Sandbox Code Playgroud)
然后,我访问模型的系数,SGDClassifier.coef_从而产生形状数组(1,696):
coefs = np.array([[-1.233e+00,0.9123e+00,-2.431e+00...-0.238e+01,-1.33e+00,0.001e-01]])
Run Code Online (Sandbox Code Playgroud)
我如何将系数值映射回中的原始值X,所以我可以说类似“如果变量foo的值为bar,则目标变量增加/减少bar_coeff“?
让我知道您是否需要有关数据或模型参数的更多信息。谢谢。
我在SO上发现了一个未解决的问题:如何在scikit-learn上进行标签编码和一种热编码后检索系数名称?
我有一个包含数千行的数据框,其中包含多个人的多个条目:
Name ID Date
0 Person A 9999249491 2015-12-28
1 Person A 9999249491 2015-12-29
2 Person A 9999293341 2015-12-30
3 Person B 9999293341 2015-12-30
4 Person B 9999293341 2015-12-31
Run Code Online (Sandbox Code Playgroud)
我想找到的指数最低的Date使用为每个人groupby()而idxmin()但我收到一个ValueError消息时,我执行以下命令:
df.groupby(['Name','ID'])['Date'].idxmin()
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-153-ef18ad96a6d8> in <module>()
3 t = df[['Name','ipg_id','Date']]
4
----> 5 t.groupby(['Name','ipg_id'])['Date'].idxmin()
C:\Users\nickb\Anaconda2\lib\site-packages\pandas\core\groupby.pyc in idxmin(self, axis, out, skipna)
C:\Users\nickb\Anaconda2\lib\site-packages\pandas\core\groupby.pyc in wrapper(*args, **kwargs)
548 *args, **kwargs)
549 except (AttributeError):
--> 550 raise ValueError …Run Code Online (Sandbox Code Playgroud) 我model以后不会更新save()我叫view。查看几个地方(这里,这里)没有为我的案例提供任何答案。我的model确实包含一个ManyToManyField:
模型:
class Event(models.Model):
name = models.CharField(max_length=120)
date = models.DateTimeField(auto_now=False, auto_now_add=False)
attendees = models.ManyToManyField(Employee)
approval = models.ForeignKey(EventStatus, default=2)
def __unicode__(self):
return self.name
def approve_url(self):
return reverse("RGAU:EventApprove", kwargs={"id": self.id})
Run Code Online (Sandbox Code Playgroud)
看法:
def EventApprove(request, id=None, **kwargs):
instance = get_object_or_404(Event, id=id)
instance.approval.id = 3
instance.save()
messages.success(request, "Event Approved")
return redirect("RGAU:UserDashboard")
Run Code Online (Sandbox Code Playgroud)
目标是Event在网页上按下按钮时将实例更新为“已批准”(因此视图EventApprove)。
instance.approval.id假设分配正确的批准状态id但未提交保存。
我究竟做错了什么?
group管理站点上的内置 django模型仅显示name:
但我想包括已经是group模型一部分的其他字段,例如id.
我尝试使用以下admin.py设置添加这些字段:
from django.contrib import admin
from django.contrib.auth.models import Group
class GroupsAdmin(admin.ModelAdmin):
list_display = ["name", "pk"]
class Meta:
model = Group
admin.site.register(Group, GroupsAdmin)
Run Code Online (Sandbox Code Playgroud)
但这会返回错误:
django.contrib.admin.sites.AlreadyRegistered: The model Group is already registered.
Run Code Online (Sandbox Code Playgroud)
我已经在 admin 上成功注册了其他模型(我已经创建了),但上述内容不适用于那些已经是 django 一部分的模型。
如何在管理模型中添加字段Group?
我有一个pandas框架与员工PTO条目:
employee_id time_off_date
1 1/1/2017
1 1/2/2017
1 1/3/2017
1 5/1/2017
2 6/1/2017
2 9/5/2017
2 9/6/2017
2 9/7/2017
2 9/8/2017
Run Code Online (Sandbox Code Playgroud)
我试图找到每个员工连续几天的PTO持续时间.例如,员工#1的最长PTO持续时间为3天(2017年1月1日至1月3日),员工#2的最长PTO持续时间为4天(2017年9月5日至9月8日).
对于大熊猫groupby和shift我应该用来回答这个问题的组合,我有点难过.
奖励积分:查找X天内所有员工的所有PTO持续时间.
请让我知道,如果你有任何问题.
我有一个array超过 200 万int的numpy :
a = np.array([324, 986, 574 ... 986, 1232, 3943])
Run Code Online (Sandbox Code Playgroud)
中的每个元素a对应于df形状为 (1324, 4)的数据帧中的一个索引值:
index A B C D
0 'foo' 2 3 2
1 'bar' 2 4 8
...
1323 'foo' 2 5 8
Run Code Online (Sandbox Code Playgroud)
我正在尝试访问df.A使用列表理解的值:
l = [df.A.loc[i] for i in a]
Run Code Online (Sandbox Code Playgroud)
但这需要很长时间才能运行。有没有更快的选择;也许我需要加入?谢谢你。