我有一个使用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) 我有一个嵌套的字典,我们称它为字典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']值。
我在这里做错什么吗?这是错误吗?
我有一个如下所示的数据框:
>>> 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 ×3
aggregate ×1
dictionary ×1
jinja2 ×1
mean ×1
nested ×1
pandas ×1
pyinstaller ×1
python-2.7 ×1
templates ×1