小编Nic*_*gel的帖子

Django - 具有多个选择的下拉表单

我需要建立一个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表单/小部件设置是否可以完成此任务使用自定义代码.

python forms django

5
推荐指数
1
解决办法
2万
查看次数

Scikit模型运行w / OneHotEncoding后如何检索原始变量

我已经从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上进行标签编码和一种热编码后检索系数名称?

python numpy scikit-learn

5
推荐指数
1
解决办法
520
查看次数

Pandas .idxmin() 使用 Groupby 抛出 ValueError

我有一个包含数千行的数据框,其中包含多个人的多个条目:

    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)

python pandas

4
推荐指数
1
解决办法
2632
查看次数

调用 .save() 后 Django 模型未更新

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但未提交保存。

我究竟做错了什么?

python django

4
推荐指数
1
解决办法
4970
查看次数

Django - 更改组管理模型中的字段

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

python django

3
推荐指数
2
解决办法
2707
查看次数

熊猫 - 由付费时间关闭(PTO)的"最长"持续时间

我有一个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日).

对于大熊猫groupbyshift我应该用来回答这个问题的组合,我有点难过.

奖励积分:查找X天内所有员工的所有PTO持续时间.

请让我知道,如果你有任何问题.

python pandas

1
推荐指数
1
解决办法
39
查看次数

当索引值包含在单独的 numpy 数组中时访问 Pandas 数据帧值

我有一个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)

但这需要很长时间才能运行。有没有更快的选择;也许我需要加入?谢谢你。

python numpy pandas

0
推荐指数
1
解决办法
712
查看次数

标签 统计

python ×7

django ×3

pandas ×3

numpy ×2

forms ×1

scikit-learn ×1