小编cah*_*hoy的帖子

无法将Jinja2模板包含在Pyinstaller发行版中

我有一个使用Jinja2模板的python脚本,我正在尝试使用Pyinstaller创建一个文件夹分发.

在Jinja,我让程序通过使用PackageLoader类来理解模板的位置.下面的代码显示它指向Python包templates下的我的文件夹pycorr.

env = Environment(loader=PackageLoader('pycorr', 'templates'))
template = env.get_template('child_template.html')
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构:

pycorr
| |
| + templates
|    |
|    + base.html
|    + child.html
Run Code Online (Sandbox Code Playgroud)

当我使用Pyinstaller将包编译成单个文件夹时,我没有看到任何与Jinja2相关的警告/错误,我可以启动.exe文件.但是,当程序开始查找Jinja2模板时,它会失败,并在控制台窗口中显示此错误消息:

Traceback (most recent call last):
  ...
  File "C:\Users\ ... \out00-PYZ.pyz\pycorr.WriterToHTML", line 96, in htmlout_table
  File "C:\Users\ ... \out00-PYZ.pyz\pycorr.WriterToHTML", line 13, in __init__
  File "C:\Users\ ... \out00-PYZ.pyz\pycorr.WriterToHTML", line 48, in __set_template
  File "C:\Users\ ... \out00-PYZ.pyz\jinja2.environment", line 791, in get_template
  File "C:\Users\ ... \out00-PYZ.pyz\jinja2.environment", line 765, in _load_template
  File "C:\Users\ ... …
Run Code Online (Sandbox Code Playgroud)

python templates pyinstaller jinja2

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

为什么更新一个字典对象会影响另一个?

我有一个嵌套的字典,我们称它为字典d。该词典的键是一个整数,每个键的值是另一个词典。我正在python 2.7上尝试一个简单的代码来更新一个外键的值,但是似乎它正在更新外键的ALL的值。

希望这些代码将使其更易于理解。这是我的意见。

>>> template = {'mean':0,'median':0}
>>> d[0] = template
>>> d[1] = template
>>> d[0]['mean'] = 1
>>> d
Run Code Online (Sandbox Code Playgroud)

然后是输出:

{0: {'mean':1, 'median':0}, 1:{'mean':1,'median':0}}
Run Code Online (Sandbox Code Playgroud)

您会看到,我只为d [0] ['mean']分配了'1',但是d [1] ['mean']也有所更新。如果我增加d中的键数,它将仅更改所有d键上的所有['mean']值。

我在这里做错什么吗?这是错误吗?

python dictionary nested python-2.7

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

熊猫:使用groupby获取每个数据类别的均值

我有一个如下所示的数据框:

>>> df[['data','category']]
Out[47]: 
          data     category
  0       4610            2
 15       4610            2
 22       5307            7
 23       5307            7
 25       5307            7
...        ...          ...
Run Code Online (Sandbox Code Playgroud)

数据和类别都是数字,所以我能够这样做:

>>> df[['data','category']].mean()
Out[48]: 
data        5894.677985
category      13.805886
dtype: float64
Run Code Online (Sandbox Code Playgroud)

而我正试图获得每个类别的平均值.它看起来很直接,但当我这样做时:

>>> df[['data','category']].groupby('category').mean()
Run Code Online (Sandbox Code Playgroud)

要么

>>> df.groupby('category')['data'].mean()
Run Code Online (Sandbox Code Playgroud)

它返回如下错误:

DataError: No numeric types to aggregate
Run Code Online (Sandbox Code Playgroud)

如果我用上面的两个函数替换,则没有错误.count().

我做错了什么?获得每个类别的平均值的正确方法是什么?

python aggregate mean pandas

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