小编tot*_*ico的帖子

同时(“同时”)获取“ min”和“ idxmin”(或“ max”和“ idxmax”)?

我在想,如果有调用的可能性idxmin,并min在同一时间(在相同的呼叫/循环)。

假设以下数据框:

    id  option_1    option_2    option_3    option_4
0   0   10.0        NaN         NaN         110.0
1   1   NaN         20.0        200.0       NaN
2   2   NaN         300.0       30.0        NaN
3   3   400.0       NaN         NaN         40.0
4   4   600.0       700.0       50.0        50.0
Run Code Online (Sandbox Code Playgroud)

我想计算该系列的最小值(min)和包含最小值的列(idxminoption_

    id  option_1    option_2    option_3    option_4    min_column  min_value
0   0   10.0        NaN         NaN         110.0       option_1        10.0
1   1   NaN         20.0        200.0       NaN         option_2        20.0
2   2   NaN         300.0       30.0        NaN         option_3        30.0
3 …
Run Code Online (Sandbox Code Playgroud)

python performance pandas

6
推荐指数
2
解决办法
1382
查看次数

如何使用存储在两个列表/向量/系列中的"类坐标"索引更改数据框单元格值?

如果之前有人问过,请道歉,不知怎的,我无法找到答案.

假设我有两个值列表:

rows = [0,1,2]
cols = [0,2,3]
Run Code Online (Sandbox Code Playgroud)

它分别代表行和列的索引.这两个列表在矩阵中组合了表示的坐标,即(0,0),(1,2),(2,3).

我想使用这些坐标来改变dataframe不使用循环的特定单元格.

在numpy中,这是微不足道的:

data = np.ones((4,4))
data[rows, cols] = np.nan

array([[nan,  1.,  1.,  1.],
      [ 1.,  1., nan,  1.],
      [ 1.,  1.,  1., nan],
      [ 1.,  1.,  1.,  1.]])
Run Code Online (Sandbox Code Playgroud)

但在熊猫中,我似乎陷入了一个循环:

df = pd.DataFrame(np.ones((4,4)))
for _r, _c in zip(rows, cols): 
    df.iat[_r, _c] = np.nan
Run Code Online (Sandbox Code Playgroud)

有没有办法用于列出类似坐标索引的向量来直接修改pandas中的单元格?


请注意,答案不是使用iloc,而是选择整个行和列的交集.

python pandas

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

Chart.js 的钩子(插件)的执行顺序是什么?

chartJS 插件的文档可以在这里找到,但是它不完整,因为没有对每个钩子的完整描述:

  • afterInit
  • beforeUpdate (cancellable)
  • afterUpdate
  • beforeLayout (cancellable)
  • afterLayout
  • beforeDatasetsUpdate (cancellable)
  • afterDatasetsUpdate
  • beforeDatasetUpdate (cancellable)
  • afterDatasetUpdate
  • beforeRender (cancellable)
  • afterRender
  • beforeDraw (cancellable)
  • afterDraw
  • beforeDatasetsDraw (cancellable)
  • afterDatasetsDraw
  • beforeDatasetDraw (cancellable)
  • afterDatasetDraw
  • beforeEvent (cancellable)
  • afterEvent
  • resize
  • destroy

这个列表可以总结为以下功能,但顺序对我来说不清楚:

  • 更新
  • 布局
  • 数据集更新
  • 数据集更新
  • 使成为
  • 数据集绘制
  • 数据集绘制
  • 事件
  • 调整大小
  • 破坏

一些名字可能知道钩子的执行顺序是什么。


用例

我想在图表上实现在数据的某些条件下激活的几种行为,例如,我想在没有可用数据时更新图例标签,因此,而不是在图例中显示类别的名称,它会显示一条消息,说没有数据

可以肯定的是,我已经设法实现了 plugins,但是由于我不清楚顺序,因此由于顺序,我总是把事情搞混。

javascript chart.js

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

将未绑定的表单转换为绑定的表单?

我希望从对象获得绑定表单以使用is_valid方法.原因是我有一些旧数据,我希望用户根据新的验证规则进行更正.然后,我想在我的表单中重用clean方法的代码.

我最终序列化了我的回复:

from django.utils import simplejson
from django.core.serializers import serialize

(...)

fields_dict = simplejson.loads(serialize('json', [obj]))[0]['fields']
form = forms.MyForm(fields_dict)
if form.is_valid
Run Code Online (Sandbox Code Playgroud)

这可行,但它似乎不是很Djangish.此外,它似乎是一个常见的问题,所以我正在寻找一个更好的方法来做到这一点.

根据文档,从未绑定到未绑定的转换数据不会发生:https: //docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method 但是,这将是最简单的解决方案为了我.

django django-forms

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

简单的kivy标签示例

我是使用Kivy进行Android开发的新手.我创建了一个如下所示的标签结构:

from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.tabbedpanel import TabbedPanelHeader
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.image import Image

class TabbedPanelApp(App):
  def build(self):
      tb_panel= TabbedPanel()

      # Create text tab          
      th_text_head = TabbedPanelHeader(text='Text tab')
      th_text_head.content= Label(text='This is my text content')

      # Create image tab
      th_img_head= TabbedPanelHeader(text='Image tab')
      th_img_head.content= Image(source='sample.jpg',pos=(400, 100), size=(400, 400))

      # Create button tab
      th_btn_head = TabbedPanelHeader(text='Button tab')
      th_btn_head.content= Button(text='This is my button',font_size=20)

      tb_panel.add_widget(th_text_head)
      tb_panel.add_widget(th_img_head)
      tb_panel.add_widget(th_btn_head)          

      return tb_panel

if __name__ == '__main__':
    TabbedPanelApp().run() …
Run Code Online (Sandbox Code Playgroud)

python android kivy

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

如何在Django-CMS中停用WYMeditor只使用纯HTML?

我想介绍普通的HTML,而不需要任何编辑器(wymeditor或tinymce).我知道Django-CMS附带Wymeditor但我的问题是复制和粘贴文本很烦人.即使没有格式,Wymeditor也喜欢在我复制时添加样式(没有任何格式).有时候,我甚至不需要在占位符中使用另一个段落(并且它与我的风格混淆).

有没有办法摆脱编辑?此外,有没有办法摆脱特定占位符的编辑器?有时我确实需要它.

注意:我知道我可以创建自己的插件field.textfield(并且它不使用编辑器),但我想使用相同的插件,因为如果我更改插件,我将不得不手动移动所有文本数据库(生产和开发).

django wymeditor django-cms

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

在.DMG Mac OS文件中何处读取数据文件夹和配置文件?

我正在为Windows和Mac开发一个应用程序,我需要一些帮助,我应该如何组织输入数据的文件结构(例如配置文件),以便我可以很容易地使用它.

以下是我为Windows设置的方法:

我有一个非常简单的程序,从目录中读取一些数据data.在Windows中我创建了一个example.exedata文件夹住在它旁边.如果用户需要处理更多数据(通过电子邮件接收),她只需将文件放在文件夹中并双击即可example.exe.

以下是我为Mac Os所做的事情:

我设法创建了DMG,但我不知道在哪里放数据文件夹.硬编码另一个文件夹(例如HOMEDesktop)可以工作,但它感觉不对.我想有一个Button打开一个Dialog来指定文件夹,但是我需要保存下次用户打开应用程序时的路径.为了保存此路径,我需要一个配置文件或工作区.所以,我需要一个可以找到配置文件的路径.

这将是预期的行为Mac的可用性的角度来看,如何我会去了解它的目录位置和配置文件的条款?

macos installation path configuration-files

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

为什么小部件在Kivy中共享相同的画布?

Kivy文档指出"Kivy中的每个小部件默认都有他们的Canvas".然而,在实践中,小部件似乎持有对整个窗口的共享画布的引用,而不是仅为自己创建一个.

这变得更加清晰,当我使用context_instrucionsRotate,TranslateScale.如果我Rotate在特定内部Widget,它将影响后续小部件.一切似乎都在旋转.Rotate在绘制任何其他内容之前,我必须取消画布.而且,如果它在旋转的画布中或下一个画布中并不重要.指令也是如此Color.

对此默认行为施加和例外的唯一方法似乎是RelativeLayout.在那种情况下,我所说的所有内容RelativeLayoutColor与继续全球化的外部相关.可以说Color不是定位指令而RelativeLayout只是相对于位置.Rotate并且Translate是位置说明但是它Scale

我实际上只是通过一个具体的例子完成了一篇博文

我显然错过了每个Widget的部分都有自己的东西canvas.所以,基本上我的问题是为什么小部件似乎在Kivy中共享相同的画布?

kivy

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

如何在numpy矩阵中有效地找到行的leftest非null值的索引列?

我想知道是否有一种快速的方法来找到每行的leftest非null值的索引numpy矩阵.

免得说我有这个:

data = np.array([[np.nan, np.nan, 10,      1],
                 [np.nan, 30,      50,      np.nan],
                 [40,      np.nan, np.nan, 5],
                 [np.nan, np.nan, np.nan, 10]])
Run Code Online (Sandbox Code Playgroud)

我想分别返回10,30,40和10的索引,即2,1,0和3.

以下工作,但它不是很有效(例如,fn函数内部的循环很慢):

def fn(row):
    for idx, v in enumerate(row):
         if not np.isnan(v):
              return idx
np.apply_along_axis(fn, 1, data)
Run Code Online (Sandbox Code Playgroud)

python numpy

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

如何在运行时检查Django中已安装应用程序的版本?

我基本上需要知道它安装和添加到的特定应用程序的版本

INSTALLED_APPS = (
    ...
    'the_application',
    ...
)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用pip冻结.我知道当前虚拟环境中的应用程序版本.

问题是我想支持两个版本的the_application.

像settings.INSTALLED_APP ['the_application'].get_version()这样的东西就是我要找的......

django

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

为什么df.lookup比df.min慢?

我想通过使用lookupafter idxmin而不是调用minand 来节省一些时间idxmin。在我看来,第一个应该更有效,因为在第二个中,值需要搜索两次(在最小值上,另一个在最小值的索引上,即2倍O(NxM)),而在第二个中,首先,搜索索引(O(NxM)),然后使用索引查找值(O(N))

请检查此问题,以便您了解上下文以及我的推理的更多详细信息。

结果开始出乎意料,因此我进行了一些测试:

我使用了100000行x 10列的数据框(通过添加更多行,结果变得更糟):

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100000, 10)), columns=[f'option_{x}' for x in range(1,11)]).reset_index()
df['min_column'] = df.filter(like='option').idxmin(1)
Run Code Online (Sandbox Code Playgroud)

然后我做了一些计时:

%timeit -n 100 df.filter(like='option').min(1)
# 12.2 ms ± 599 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit -n 100 df.lookup(df.index, df['min_column'])
# 46.9 ms ± 526 µs per loop (mean ± std. dev. of 7 runs, 100 …
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas

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