小编dmi*_*dmi的帖子

Python Pandas:使用aggfunc = count unique pivot的数据透视表

df2 = pd.DataFrame({'X' : ['X1', 'X1', 'X1', 'X1'], 'Y' : ['Y2','Y1','Y1','Y1'], 'Z' : ['Z3','Z1','Z1','Z2']})

    X   Y   Z
0  X1  Y2  Z3
1  X1  Y1  Z1
2  X1  Y1  Z1
3  X1  Y1  Z2

g=df2.groupby('X')

pd.pivot_table(g, values='X', rows='Y', cols='Z', margins=False, aggfunc='count')
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):... AttributeError:'Index'对象没有属性'index'

如何获得一个数据透视表,其中包含另外两列的一个DataFrame列的唯一值计数
是否有aggfunc用于计数独特之处?我应该用np.bincount()吗?

NB.我知道'系列',values_counts()但我需要一个数据透视表.


编辑:输出应该是:

Z   Z1  Z2  Z3
Y             
Y1   1   1 NaN
Y2 NaN NaN   1
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

45
推荐指数
5
解决办法
11万
查看次数

Django:ModelMultipleChoiceField不选择初始选择

ModelMultipleChoiceField没有选择初始选项,我无法在我的示例中进行以下修复(链接如下):

http://code.djangoproject.com/ticket/5247#comment:6

我的模特和形式:

class Company(models.Model):
    company_name = models.CharField(max_length=200)

class Contact(models.Model):
    company = models.ForeignKey(Company)
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

class Action(models.Model):
    company = models.ForeignKey(Company, blank=True, null=True)
    from_company = models.ManyToManyField(Contact, verbose_name='Participant(s) from "Company"', blank=True, null=True)

class Action_Form(ModelForm):
    from_company = forms.ModelMultipleChoiceField(queryset=Contact.objects.none(), widget=forms.CheckboxSelectMultiple())
    class Meta:
        model = Action
Run Code Online (Sandbox Code Playgroud)

我做了什么和结果:

>>> contacts_from_company = Contact.objects.filter(company__exact=1) # "1" for test, otherwise a variable
>>> form = Action_Form(initial={'from_company': [o.pk for o in contacts_from_company]}) # as suggested in the fix
>>> print form['from_company']
<ul>
</ul>
>>> print contacts_from_company
[<Contact: test person>, <Contact: …

python django django-models django-forms

25
推荐指数
4
解决办法
2万
查看次数

Django:查询没有主键的只读视图

class dbview(models.Model):
    # field definitions omitted for brevity
    class Meta:
        db_table = 'read_only_view'

def main(request):
    result = dbview.objects.all()
Run Code Online (Sandbox Code Playgroud)

抓而呈现异常:(1054,"未知列'read_only_view.ID在'字段列表’")

没有主键,我可以在视图中看到的.有解决方法吗?

评论:
我无法控制我使用Django访问的视图.MySQL浏览器显示那里的列但没有主键.

django django-models

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

Django QueryDict在列表中包装值的解决方法?

希望这是一个简单的.
问题:Django QueryDict在列表中包装值.

这个:

data[u'test'] = [u'1', u'2']
Run Code Online (Sandbox Code Playgroud)

变为:

<QueryDict: {u'test': [[u'1', u'2']]}>
Run Code Online (Sandbox Code Playgroud)

我该怎么做:

<QueryDict: {u'test': [u'1', u'2']}>
Run Code Online (Sandbox Code Playgroud)

django

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

导入和使用使用多处理的模块,而不会在Windows上造成无限循环

我有一个名为的模块multi.py.如果我只是想将multi.py作为脚本执行,那么避免在Windows上崩溃(产生无数个进程)的解决方法是将多处理代码放在:

if __name__ == '__main__':
Run Code Online (Sandbox Code Playgroud)

但是,我试图将其作为另一个脚本的模块导入并调用multi.start().如何实现这一目标?

# multi.py
import multiprocessing

def test(x):
    x**=2

def start():
    pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()-2)
    pool.map(test, (i for i in range(1000*1000)))
    pool.terminate()
    print('done.')

if __name__ == '__main__':
    print('runs as a script,',__name__)
else:
    print('runs as imported module,',__name__)
Run Code Online (Sandbox Code Playgroud)

这是我的test.py运行:

# test.py
import multi
multi.start()
Run Code Online (Sandbox Code Playgroud)

python windows multiprocessing

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