小编Mar*_*aev的帖子

SQLAlchemy:使用`和`和`或`时出现意外结果

我有一个通过SQLAlchemy创建的数据库"新闻":

class News(Base):
    __tablename__ = "news"
    id = Column(Integer, primary_key = True)
    title = Column(String)
    author = Column(String)
    url = Column(String)
    comments = Column(Integer)
    points = Column(Integer)
    label = Column(String)
Run Code Online (Sandbox Code Playgroud)

我还有一个函数News,它获取一个字符串并返回3个字符串变体之一:'good','maybe'或'never'.我尝试过滤行:

rows = s.query(News).filter(News.label == None and f(News.title) == 'good').all()
Run Code Online (Sandbox Code Playgroud)

但是程序失败了,引发了这个错误:

raise TypeError("Boolean value of this clause is not defined")
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python boolean sqlalchemy

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

scikit-learn 中 ColumnTransformer 的自定义转换器问题

我想在 scikit-learn 中创建一个稳定的管道来预处理数据。我试图完成的第一步是对数据None框中不同列应用不同策略(即替换为均值、中位数或其他描述性统计数据)的值进行插补。但是,我

我开始将SimpleImputer变压器与ColumnTransformer. 因为SimpleImputer返回 numpy 数组而不是 pandas 数据帧,我编写了一个新的转换器,它SimpleImputer在后台使用,但将 pandas 列和索引添加回 numpy 数组。为什么我需要回熊猫数据框?因为我看到我的管道是这样的:

pipeline = Pipeline([
    ('imputation', ImputationColumnTransformer),
    ('feature_encoding', EncodingColumnTransformer),
    ('model', MLModel)
])
Run Code Online (Sandbox Code Playgroud)

如果没有列访问权限,特征编码的第二步根本无法进行。

问题是当我使用自定义转换器时,我总是从内部 scikit-learn 验证代码中得到一些错误。

我创建了一个简单的例子来显示我得到的错误类型:

# Creating a toy dataset
m = np.random.randn(3, 3)
m[0, 1] = np.nan
m[2, 2] = np.nan
df = pd.DataFrame(m, columns=['a', 'b', 'c'])


class Imputer(BaseEstimator, TransformerMixin):
    # This transformer returns dataframe instead of default ndarray
    def __init__(self, ImputerCls, strategy):
        self.imputer = ImputerCls(strategy=strategy) …
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn

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

查看仅当前用户对象的列表,Django REST

我有2个视图:/ notes /和/ notes //在models.py我有拥有者变量的笔记模型中,它存储了所有者的登录信息.因为我想拥有很多用户,所以我不希望他们看到其他人的笔记,所以我创建了权限:

class IsOwner(permissions.BasePermission):
    def has_object_permission(self, request, view, obj):
        return obj.owner == request.user
Run Code Online (Sandbox Code Playgroud)

我将此权限设置为NotesList(generics.ListCreateAPIView)NotesDetail(generics.RetrieveUpdateDestroyAPIView).现在用户无法查看其他人的笔记/notes/<pk>/,但/notes/他仍然可以查看完整列表.那么,我该如何改变呢?我想在笔记列表中看到我的笔记.我认为正确的方法是过滤queryset = Snippet.objects.all().filter(owner=...)但不能马上思考.

python django

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

ReactJS 中的两个循环而不是硬编码

我尝试在ReactJS 教程 Tic-tac-toe game 中完成额外的练习。

现在我有这个代码:

class Board extends React.Component {
renderSquare(i) {
    return (
        <Square
            value={this.props.squares[i]}
            onClick={() => this.props.onClick(i)}
        />
    );
}

render() {
    return (
        <div>
            <div className="board-row">
                {this.renderSquare(0)}
                {this.renderSquare(1)}
                {this.renderSquare(2)}
            </div>
            <div className="board-row">
                {this.renderSquare(3)}
                {this.renderSquare(4)}
                {this.renderSquare(5)}
            </div>
            <div className="board-row">
                {this.renderSquare(6)}
                {this.renderSquare(7)}
                {this.renderSquare(8)}
            </div>
        </div>
    );
}
Run Code Online (Sandbox Code Playgroud)

}

{this.renderSquare(x)}我不想硬编码9 次,而是想用两个循环替换它们或使用,map(map())但我写的所有内容看起来都比硬编码更糟糕。

有没有更好的方法来做到这一点并避免硬编码?

javascript loops reactjs

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