小编Igo*_*ush的帖子

金字塔为静态资产返回错误的Content-Type HTTP标头

到目前为止,我一直在使用Pyramid从python包中的文件夹中提供静态资源,如文档中所述:

config.add_static_view('static', 'myapp:static')
Run Code Online (Sandbox Code Playgroud)

并从模板加载它们如下:

<script type="text/javascript" src="{{ request.application_url }}/static/js/jquery-1.7.1.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,我注意到Chrome会发出如下警告:

Resource interpreted as Stylesheet but transferred with MIME type apache/2.2.14: "http://mydomain.com/static/js/jquery-1.7.1.min.js"
Run Code Online (Sandbox Code Playgroud)

要么

Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://mydomain.com/static/js/jquery-1.7.1.min.js"
Run Code Online (Sandbox Code Playgroud)

这在硬刷新时发生,并且似乎在3-4中随机资源加载<head>了错误的Content-Type标头(根据Pyramid文档,标头由文件扩展名确定).

我没有能够推断出如何设置错误标头的模式.有时,它适用text/plain于javascript/CSS文件,有时它是一个类似的路径/static/js/something.js(并且此路径与请求URL无关),有时它是Server标题的值,apache/2.2.14如上所述.

这是一个很大的问题,因为当返回带有错误内容类型的CSS时,它不会被渲染,这会破坏整个页面.我通过捕获/staticApache的请求,并使用它来提供静态资产,同时让所有其他请求通过金字塔来解决这个问题.我不再在Chrome中看到错误的MIME类型警告.但是,我想知道是否有人遇到过这个问题,以及它是否是金字塔错误,或者我是否在做其他错误.

编辑:我忘了提供我如何部署我的应用程序的规格.生产服务器运行Apache 2.2,应用程序在mod_wsgi下运行.我遵循的过程几乎是本教程中逐字描述的:http://docs.pylonsproject.org/projects/pyramid/en/1.0-branch/tutorials/modwsgi/index.html.重要提示:只有通过mod_wsgi在Apache上运行时才会出现此问题.当我在服务员本地运行应用程序时,Content-Type标头始终是正确的.

python mod-wsgi wsgi pyramid

5
推荐指数
0
解决办法
695
查看次数

按照Lodash 2.x中的多个字段排序

假设这个数组:

var members = [
  {firstName: 'Michael', weight: 2}, 
  {firstName: 'Thierry', weight: 1}, 
  {firstName: 'Steph', weight: 3},
  {firstName: 'Jordan', weight: 3}, 
  {firstName: 'John', weight: 2}
];
Run Code Online (Sandbox Code Playgroud)

我想按重量和每种重量排序,按firstNames排序(嵌套排序).

结果将是:

[
  {firstName: 'Thierry', weight: 1}, 
  {firstName: 'John', weight: 2}, 
  {firstName: 'Michael', weight: 2}, 
  {firstName: 'Jordan', weight: 3}, 
  {firstName: 'Steph', weight: 3}
];
Run Code Online (Sandbox Code Playgroud)

我使用Lodash 2.4.1 快速实现了这一点:

return _.chain(members)
    .groupBy('weight')
    .pairs()
    .sortBy(function(e) {
        return e[0];
    })
    .map(function(e){
        return e[1];
    })
    .map(function(e){
        return _.sortBy(e, 'firstName')
    })
    .flatten()
    .value();
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来使用Lodash 2.4.1实现它?

javascript sorting lodash

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

ValueError:使用pandas pivot_table不允许使用负尺寸

我正在尝试制作项目项协作推荐代码.我的完整数据集可以在这里找到.我希望用户成为行,项目成为列,评级为值.

我的代码如下:

import pandas as pd     
import numpy as np   
file = pd.read_csv("data.csv", names=['user', 'item', 'rating', 'timestamp'])
table = pd.pivot_table(file, values='rating', index=['user'], columns=['item'])
Run Code Online (Sandbox Code Playgroud)

我的数据如下:

             user        item  rating   timestamp
0  A2EFCYXHNK06IS  5555991584       5   978480000  
1  A1WR23ER5HMAA9  5555991584       5   953424000
2  A2IR4Q0GPAFJKW  5555991584       4  1393545600
3  A2V0KUVAB9HSYO  5555991584       4   966124800
4  A1J0GL9HCA7ELW  5555991584       5  1007683200
Run Code Online (Sandbox Code Playgroud)

错误是:

Traceback (most recent call last):  
  File "D:\python\reco.py", line 9, in <module>   
    table=pd.pivot_table(file,values='rating',index=['user'],columns=['item'])  
  File "C:\python35\lib\site-packages\pandas\tools\pivot.py", line 133, in   pivot_table     
        table = agged.unstack(to_unstack)   
  File "C:\python35\lib\site-packages\pandas\core\frame.py", line …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy dataframe pandas

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

当调色板发散时,如何使用最小值和最大值设置热图颜色?

我想设置调色板比例的最大值和最小值。在下面的示例中,我希望调色板的比例从 -10 到 50,就好像它是一个顺序颜色图一样。我真的不在乎强调数字与“零线”相交的地方。

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np  
import pandas as pd  
import seaborn as sns

index = np.arange(0, 50)
data = np.random.uniform(low=-10, high=100, size=(50,50))
dft = pd.DataFrame(index=index, columns=index, data=data)
fig, ax = plt.subplots(figsize=(10,10))
cbar_ax = fig.add_axes([.905, 0.125, .05, 0.755])
ax = sns.heatmap(dft, linewidths=.5, cmap=cm.YlGnBu, cbar_kws={'label': 'label'},
                 ax=ax, square=True, cbar_ax=cbar_ax, center=55)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做:

ax = sns.heatmap(dft, linewidths=.5, cmap=cm.YlGnBu, cbar_kws={'label': 'label'},
                 ax=ax, square=True, cbar_ax=cbar_ax, vmax=50, vmin=-10)
Run Code Online (Sandbox Code Playgroud)

调色板从 -50 到 50,并被vmin=-10忽略。

python matplotlib heatmap pandas seaborn

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

在 Python 中创建稀疏词矩阵(词袋)

我有一个目录中的文本文件列表。

我想创建一个矩阵,其中包含每个文件中整个语料库中每个单词的频率。(语料库是目录中每个文件中的每个唯一单词。)

例子:

File 1 - "aaa", "xyz", "cccc", "dddd", "aaa"  
File 2 - "abc", "aaa"
Corpus - "aaa", "abc", "cccc", "dddd", "xyz"  
Run Code Online (Sandbox Code Playgroud)

输出矩阵:

[[2, 0, 1, 1, 1],
 [1, 1, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

我的解决方案是使用collections.Counter每个文件,获取包含每个单词计数的字典,并初始化和大小为n的列表列表 × mn = 文件数,m = 语料库中唯一单词的数量)。然后,我再次遍历每个文件以查看对象中每个单词的频率,并用它填充每个列表。

有没有更好的方法来解决这个问题?也许在一次通过中使用collections.Counter?

python data-science

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

是否可以将传输的 ArrayBuffer 返回原始类型数组?

据我所知,将对象传输到 Web Worker 会导致主线程失去所有权。我想知道是否有什么办法可以让它重新获得所有权。这个Plunker(下面的代码)演示了我遇到的问题。

main.js

var worker = new Worker("worker.js");
var z = new Int16Array(10);
worker.onmessage = function(e) {
    console.log(e.data);  // [0, 1, ... 10]
    console.log(z);  // [], ownership not regained here
}
console.log(z);  // [0, 0, ... 0], original value here
worker.postMessage(z, [z.buffer]);
console.log(z);  // [], ownership lost here
Run Code Online (Sandbox Code Playgroud)

工人.js

self.onmessage = function(e) {
    var data = e.data;  // transferred "z" from main.js
    for (var i = 0; i < 10; i++) {
        data[i] = i;
    } …
Run Code Online (Sandbox Code Playgroud)

javascript multithreading web-worker

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

来自dicts列表的Pandas DataFrame

我有一个数据结构,它是一个dicts列表列表:

[
    [{'Height': 86, 'Left': 1385, 'Top': 215, 'Width': 86},
     {'Height': 87, 'Left': 865, 'Top': 266, 'Width': 87},
     {'Height': 103, 'Left': 271, 'Top': 506, 'Width': 103}],
    ...
]
Run Code Online (Sandbox Code Playgroud)

我可以将它转换为数据框:

detections[0:1]
df = pd.DataFrame(detections)
pd.DataFrame(df.apply(pd.Series).stack())
Run Code Online (Sandbox Code Playgroud)

产量:

堆叠数据框架

这几乎是我想要的,但是:

如何将每个单元格中的字典转换为"左","顶","宽","高"列?

python pandas

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

获取具有相应索引值的每日数据帧的每月最大值

我从yahoo finance下载了每日数据

                    Open          High           Low         Close     Volume  \
Date                                                                            
2016-01-04  10485.809570  10485.910156  10248.580078  10283.440430  116249000   
2016-01-05  10373.269531  10384.259766  10173.519531  10310.099609   82348000   
2016-01-06  10288.679688  10288.679688  10094.179688  10214.019531   87751700   
2016-01-07  10144.169922  10145.469727   9810.469727   9979.849609  124188100   
2016-01-08  10010.469727  10122.459961   9849.339844   9849.339844   95672200   
...
2016-02-23   9503.120117   9535.120117   9405.219727   9416.769531   87240700   
2016-02-24   9396.480469   9415.330078   9125.190430   9167.799805   99216000   
2016-02-25   9277.019531   9391.309570   9199.089844   9331.480469          0   
2016-02-26   9454.519531   9576.879883   9436.330078   9513.299805   95662100   
2016-02-29   9424.929688   9498.570312   9332.419922   9495.400391   90978700   
Run Code Online (Sandbox Code Playgroud)

我想找到每个月的最高收盘价以及收盘价的日期.

使用groupby,dfM = df['Close'].groupby(df.index.month).max()它会返回每月最大值,但我会丢失每日索引位置.

   grouped by month 
1 …
Run Code Online (Sandbox Code Playgroud)

python group-by time-series max pandas

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

如何对分类数据进行矢量化

我想对一些分类数据进行矢量化以构建训练和测试矩阵.

我有85个城市,我想得到一个282520行的矩阵,每行都是一个矢量

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

我希望每行有一个向量,其中1或0取决于城市,因此每个城市应该是一列:

print(df['city'])
Run Code Online (Sandbox Code Playgroud)
0         METROPOLITANA DE SANTIAGO
1         METROPOLITANA DE SANTIAGO
2         METROPOLITANA DE SANTIAGO
3         METROPOLITANA DE SANTIAGO
4                          COQUIMBO
5                          SANTIAGO
6                          SANTIAGO
7         METROPOLITANA DE SANTIAGO
8         METROPOLITANA DE SANTIAGO
9         METROPOLITANA DE SANTIAGO
10                          BIO BIO
11                         COQUIMBO
...                             ...
282520    METROPOLITANA DE SANTIAGO
Name: city, dtype: object
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

from sklearn import preprocessing

list_city = getList(df,'city')
le = preprocessing.LabelEncoder()
le.fit(list_city)

print(le.transform(['AISEN'])) 
print(le.transform(['TARAPACA']))
print(le.transform(['AISEN DEL GENERAL CARLOS IBANEZ DEL …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn sklearn-pandas

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

在熊猫数据框中计算平均真实范围列

我正在尝试将平均真实范围列添加到包含历史股票数据的数据框中。

到目前为止,我使用的代码是:

def add_atr_to_dataframe (dataframe):
    dataframe['ATR1'] = abs (dataframe['High'] - dataframe['Low'])
    dataframe['ATR2'] = abs (dataframe['High'] - dataframe['Close'].shift())
    dataframe['ATR3'] = abs (dataframe['Low'] - dataframe['Close'].shift())
    dataframe['TrueRange'] = max (dataframe['ATR1'], dataframe['ATR2'], dataframe['ATR3'])
    return dataframe
Run Code Online (Sandbox Code Playgroud)

包含max函数的最后一行给出了错误:

def add_atr_to_dataframe (dataframe):
    dataframe['ATR1'] = abs (dataframe['High'] - dataframe['Low'])
    dataframe['ATR2'] = abs (dataframe['High'] - dataframe['Close'].shift())
    dataframe['ATR3'] = abs (dataframe['Low'] - dataframe['Close'].shift())
    dataframe['TrueRange'] = max (dataframe['ATR1'], dataframe['ATR2'], dataframe['ATR3'])
    return dataframe
Run Code Online (Sandbox Code Playgroud)

我已经搜索了几天,试图学习如何解决该错误,或​​者以更好的方式进行代码处理,等等,但没有发现任何可以帮助我的方法。

在以下方面的任何帮助将不胜感激:

  1. 如何解决错误

  2. 如何以更好的方式进行编码-我并不是说我必须以这种方式进行编码,并且可能会有更好的方式来进行编码。

提前谢谢。

python pandas technical-indicator

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