小编cs_*_*ckX的帖子

在Pandas Dataframe上滑动窗口

我有一个庞大的时间序列数据熊猫数据帧.

我目前操纵这个数据帧来创建一个新的,更小的数据帧,每10行滚动平均.即滚动窗口技术.像这样:

def create_new_df(df):
    features = []
    x = df['X'].astype(float)
    i = x.index.values
    time_sequence = [i] * 10
    idx = np.array(time_sequence).T.flatten()[:len(x)]
    x = x.groupby(idx).mean()
    x.name = 'X'
    features.append(x)
    new_df = pd.concat(features, axis=1)
    return new_df
Run Code Online (Sandbox Code Playgroud)

要测试的代码:

columns = ['X']
df_ = pd.DataFrame(columns=columns)
df_ = df_.fillna(0) # with 0s rather than NaNs
data = np.array([np.arange(20)]*1).T
df = pd.DataFrame(data, columns=columns)

test = create_new_df(df)
print test
Run Code Online (Sandbox Code Playgroud)

输出:

      X
0   4.5
1  14.5
Run Code Online (Sandbox Code Playgroud)

但是,我希望函数使用具有50%重叠的滑动窗口来创建新数据帧

所以输出看起来像这样:

      X
0   4.5
1   9.5
2  14.5
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点? …

python numpy pandas

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

Backbone.js:在模型中渲染json数据

好的,超级基本的Backbone问题 - 我一直在寻找这个问题,但是尽管有很多类似的问题,我还是太慢了.请放心,我感到很惭愧.

无论如何,足够的自我鞭 - - 为什么不渲染?

var app = app || {};

app.Option = Backbone.Model.extend({
url: 'http://localhost:4711/api'

//This url contains the following JSON: {"title": "Blahblah", "author": "Luke Skywalker"};  
});

 app.View = Backbone.View.extend({

el: 'body',

initialize: function(){
    this.model.fetch();
    this.model.bind('change', this.render(), this);
},

render: function(){
    this.$el.html(this.model.get('title'));
    return this;
}

});


$(function() {

 var option = new app.Option();
    this.homeView = new app.View({   //Tried changing this to a standard var declaration but didn't work
      model: option
    });
    this.homeView.render();
});
Run Code Online (Sandbox Code Playgroud)

所以我期待在屏幕上看到JSON"Blahblah",但我什么都没看到.JSON正在被正确获取(我可以在firebug控制台中看到成功的GET请求),我想我确保在尝试渲染数据之前获取数据...

那有什么不对?控制台给我这个错误:"TypeError :(中间值).callback.call不是函数"

谢谢!

javascript json backbone.js

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

在实例化时自动调用 Python 类方法的最佳方法

我有一个机器学习算法,它涉及一系列步骤,例如清理数据、准备训练数据等。每个步骤都存储在 python 类的单独方法中。我想知道构建我的类的最佳实践方法是什么,以便在类实例化时自动执行这些步骤。

这是我所做的(代码是说明性的,但这种方法适用于真正的算法)。感觉有点笨重。有没有更优雅的方式?

 class Kaggle():
    """
    An algorithm
    """

    def __init__( self ):
        self.bar = 1

    def step_one( self, some_text_data ):
        self.bar = 1 ** 2
        # Do some data cleaning
        # return processed data

    def step_two( self ):
        foo = step_one(baz)
        # do some more processing

    def step_three( self ):
        bar = step_two()
        # output results

    def run( self ):
        self.step_one()
        self.step_two()
        self.step_three()

if __name__ == "__main__":
    kaggle = Kaggle()
    kaggle.run()
Run Code Online (Sandbox Code Playgroud)

python oop python-2.7 kaggle

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

Django Admin:在浏览器中创建用户

我已经设置了 Django (1.8) 管理员以允许超级用户以交互方式创建新用户。我的用户模型是使用自定义的AbstractUser,这意味着我的管理文件如下所示:

\n

管理员.py

\n
from django.contrib import admin\nfrom app.models import CPRUser\n\nclass UserAdmin(admin.ModelAdmin):\n\n    model = CPRUser\n    extra = 1\n\nadmin.site.register(CPRUser, UserAdmin)\n
Run Code Online (Sandbox Code Playgroud)\n

这是模型:

\n
class CPRUser(AbstractUser):\n    student = models.PositiveIntegerField(verbose_name=_("student"),\n                                            default=0,\n                                            blank=True)\n    saved = models.IntegerField(default=0)\n
Run Code Online (Sandbox Code Playgroud)\n

这似乎工作正常,我可以通过管理并设置新用户的密码、用户名和所有其他自定义字段。但是,当我尝试使用新创建的用户登录时,身份验证过程的某些部分失败。我从使用视图auth_views.login和样板 django 登录模板的页面登录。

\n

另一方面,如果我使用django shellmanage.py createsuperuser或在 django shell 中创建一个新用户,这些用户可以正常登录。createuser()这让我怀疑这与密码存储或散列有关 - 目前在管理中我只能输入新用户的密码。事实是,这就是我想要做的。我怎样才能得到这个想要的结果 - 我希望非 IT 经理(我不知道他们的详细信息)能够轻松地在管理员中创建新用户。我意识到这种系统的风险。

\n

这些文档在一个部分中设置此交互式用户创建似乎是矛盾的:

\n

“\xe2\x80\x9cAdd user\xe2\x80\x9d 管理页面与标准管理页面不同,它要求您选择用户名和密码,然后才能编辑用户的其余部分\xe2\x80\x99s领域。”

\n

然后是几段:

\n

“用户密码不显示在管理中(也不存储在数据库中)”

\n

这是我的管理员的屏幕截图:

\n

在此输入图像描述

\n

如何让 Django 接受通过管理员交互创建的用户的登录尝试?

\n

python django django-admin

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

登录验证后快速重定向

我正在开发一个应用程序,它在服务器上有node.js和express,mongodb用于前端的db和Backbone.js.我正在努力启用用户登录,所以我使用了passport.js库.我的登录'post'方法有问题:它没有重定向到另一个页面(它是一个SPA,所以我的意思是渲染一个Backbone视图).这是代码:

//standard express setup...

app.post('/api/auth', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err) }
    if (!user) {
      req.session.messages =  [info.message];
      return res.redirect('/')
    }
    req.logIn(user, function(err) {
      if (err) { 
    return next(err); 
  } else {
            console.log('yup, working'); //Can see the response in the console
    return res.redirect('/api'); 
  }
});
  })(req, res, next);
});

app.get('/api', function (request, response) {
  response.send( 'Login successful!' );
});
Run Code Online (Sandbox Code Playgroud)

所以我可以看到console.log消息很好,并且触发了路由的GET请求......但实际上没有发生任何事情.所以我认为我误解了'res.redirect'是如何工作的 - 我想在登录成功后导航到那条路线.我考虑过使用window.location,但这是一个很好的长期解决方案吗?我没有在服务器上使用任何html模板,所以我不能(我不认为)做一些像'res.render('index')那样简单的事情

什么是最好的方法来解决这个问题?提前致谢.

node.js express backbone.js passport.js

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