小编xav*_*xav的帖子

与非程序员分享Jupyter笔记本的最佳方式是什么?

我试图围绕Jupyter能做什么/不能做什么.

我在我们的内部服务器上运行了一个Jupyter服务器,可通过VPN访问并受密码保护.

我是唯一一个真正创建笔记本的人,但我想让其他团队成员以只读方式看到一些笔记本.理想情况下,我可以与他们共享一个URL,当他们想要查看具有刷新数据的笔记本时,他们会为其添加书签.

我看到出口选项,但找不到任何提及"发布"或"公开"本地现场笔记本.这不可能吗?考虑如何使用Jupyter可能只是一种错误的方式吗?他们最好的做法是什么?

python jupyter jupyter-notebook

148
推荐指数
6
解决办法
11万
查看次数

熊猫 - FillNa与另一栏

我想用另一列的值填充一列中的缺失值.

我读到循环遍历每一行将是非常糟糕的练习,并且最好一次性完成所有操作,但我无法找到如何使用该fillna方法.

数据之前

Day  Cat1  Cat2
1    cat   mouse
2    dog   elephant
3    cat   giraf
4    NaN   ant
Run Code Online (Sandbox Code Playgroud)

数据之后

Day  Cat1  Cat2
1    cat   mouse
2    dog   elephant
3    cat   giraf
4    ant   ant
Run Code Online (Sandbox Code Playgroud)

python pandas fillna

70
推荐指数
4
解决办法
5万
查看次数

从现有的ggplot图表中删除geom?

我试图了解如何更改ggplot2图表的内部.我开始阅读一些ressources我能找到ggplot_builtggplot_gtable,但我不能回答以下问题.

给出g2 的情节geom.

g <- ggplot(iris, aes(Petal.Length, Petal.Width)) + 
  geom_point() + 
  geom_text(aes(label=Sepal.Width))
g
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法潜入g对象并删除一个/多个geoms?

我可以从g一个没有地貌的情节开始吗?

在此输入图像描述

或者只是geom_text删除?

在此输入图像描述


更彻底地测试答案后更新

我只是注意到移除geoms会对其他geom的布局产生影响.作为大多数用例的默认和预期行为可能很好,但实际上我需要完全相同的图表"布局"(轴和剩余几何的位置).

例如,在删除一个geom之前:

library(dplyr)
library(ggplot2)
count(mpg, class) %>%
  mutate(pct=n/sum(n)) %>%
  ggplot(aes(class, pct)) +
  geom_col(fill="blue") +
  geom_line(group=1) +
  geom_point(size=4) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

删除一个geom后(请注意,y轴不再从0开始,我猜是没有条形的线/点的默认行为):

library(dplyr)
library(ggplot2)
count(mpg, class) %>%
  mutate(pct=n/sum(n)) %>%
  ggplot(aes(class, pct)) +
  geom_col(fill="blue") +
  geom_line(group=1) +
  geom_point(size=4) -> p
p$layers[[1]] <- NULL
p
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有什么方法可以强制ggplot保持完全相同的布局?

r ggplot2

14
推荐指数
2
解决办法
1320
查看次数

按列重新排序数据表

我想知道是否有任何已知方法可以有效地在dc.js中为我的数据表添加"重新排序"功能.如果我的用户在完成对图表的选择后,可以根据哪个列来决定过滤行的排序(例如,通过单击列标题),那将是很好的.

任何想法从哪里开始?

非常感谢

crossfilter dc.js

13
推荐指数
2
解决办法
5860
查看次数

dimplejs中的多系列

我正在修补dimplejs中的多系列图表,并且对多轴逻辑有点困惑.

有以下数据:

var data = [
  {"Month":"01/2013", "Revenue":2000, "Profit":2000, "Units":4},
  {"Month":"02/2013", "Revenue":3201, "Profit":2000, "Units":3},
  {"Month":"03/2013", "Revenue":1940, "Profit":14000, "Units":5},
  {"Month":"04/2013", "Revenue":2500, "Profit":3200, "Units":1},
  {"Month":"05/2013", "Revenue":800, "Profit":1200, "Units":4}
]
Run Code Online (Sandbox Code Playgroud)

我试图得到一个图表,按月显示我的收入和利润在同一y轴上,我的单​​位在次y轴上.

使用下面的代码,我可以设法显示3系列.但是Profit系列与收入系列并没有真正在同一个轴上,整个事情看起来更像是一个黑客而不是一个合适的解决方案.

var chart = new dimple.chart(svg, data);

chart.setBounds(60,20,680,330);

var x = chart.addCategoryAxis("x", "Month");
var y1 = chart.addMeasureAxis("y", "Revenue");
chart.addSeries("null", dimple.plot.line, [x,y1]);
var y2 = chart.addMeasureAxis("y", "Units");
chart.addSeries("null", dimple.plot.bar, [x,y2]);
var y3 = chart.addMeasureAxis("y", "Profit");
chart.addSeries("null", dimple.plot.line, [x,y3]);
Run Code Online (Sandbox Code Playgroud)

我想我的逻辑可能是错误的如何正确地玩系列.任何帮助都会很棒.

非常感谢,泽维尔

完整代码:

var svg = dimple.newSvg("body", 800, 400);

var data = [
    {"Month":"01/2013", "Revenue":2000, …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js dimple.js

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

在data.frame上重构魔法

我目前正在学习使用data.frame,并对如何重新排序它们感到困惑.

目前,我有一个data.frame显示:

  • 第1列:商店名称
  • 第2栏:产品
  • 第3栏:本店购买此产品的数量

或者在视觉上是这样的:

+---+-----------+-------+----------+--+
|   | Shop.Name | Items | Product  |  |
+---+-----------+-------+----------+--+
| 1 | Shop1     |     2 | Product1 |  |
| 2 | Shop1     |     4 | Product2 |  |
| 3 | Shop2     |     3 | Product1 |  |
| 4 | Shop3     |     2 | Product1 |  |
| 5 | Shop3     |     1 | Product4 |  |
+---+-----------+-------+----------+--+
Run Code Online (Sandbox Code Playgroud)

我想要实现的是以下"以商店为中心"的结构:

  • 第1列:商店名称
  • 第2列:为product1销售的商品
  • 第3列:为product2销售的商品
  • 第4列:为product3销售的商品......

如果没有特定商店/产品的行(因为没有销售),我想创建一个0.

要么

+---+-------+-------+-------+-------+-------+-----+--+--+
|   | Shop  | …
Run Code Online (Sandbox Code Playgroud)

r reshape dataframe

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

Crossfilter reduce ::查找唯一身份的数量

我正在尝试为数据集属性组创建自定义reduce函数,该函数将为另一个属性求和一些唯一值.

例如,我的数据集看起来像团队成员对项目的操作列表:

{ project:"Website Hosting", teamMember:"Sam", action:"email" },
{ project:"Website Hosting", teamMember:"Sam", action:"phoneCall" },
{ project:"Budjet", teamMember:"Joe", action:"email" },
{ project:"Website Design", teamMember:"Joe", action:"design" },
{ project:"Budget", teamMember:"Sam", action:"email" }
Run Code Online (Sandbox Code Playgroud)

因此,团队成员通过每行执行一个操作来处​​理可变数量的项目.我有团队成员的维度,并希望通过项目数量(独特)来减少它.

我尝试了以下(在uniques数组中存储项目)没有成功(抱歉,这可能会伤到你的眼睛):

var teamMemberDimension = dataset.dimension(function(d) {
    return d.teamMember;
});

        var teamMemberDimensionGroup = teamMemberDimension.group().reduce(
            // add
            function(p,v) {
                if( p.projects.indexOf(v.project) == -1 ) {
                    p.projects.push(v.project);
                    p.projectsCount += 1;
                }
                return p;
            },
            // remove
            function(p,v) {
                if( p.projects.indexOf(v.projects) != -1 ) {
                    p.projects.splice(p.projects.indexOf(v.projects), 1);
                    p.projectsCount -= 1;
                }
                return p; …
Run Code Online (Sandbox Code Playgroud)

crossfilter dc.js

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

在 ggplot2 中使用 sitools 时的“NANA”输出

我使用 sitools 来格式化 ggplot2 图表上的刻度标签。当我处理大量数字时,最大的主要刻度标签最终是“NANA”,并且控制台中会显示一条警告消息:

Warning message:
  In number/sifactor[ix] :
  longer object length is not a multiple of shorter object length
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

library(ggplot2)
library(sitools)

data <- data.frame(list(
 Quarter=as.factor(c("Q1 2015","Q2 2015","Q3 2015","Q4 2015","Q1 2016")),
 Operations=c(23000000,54000000,120000000,450000000,12000000)
))

line_chart <- function(df, x, y, tit, xtit, ytit) {
  return(
    df %>% ggplot(aes_string(x=x, y=y)) +
      geom_bar(stat = "identity", size=1) +
      xlab(xtit) +
      ylab(ytit) +
      scale_y_continuous(labels = f2si) +
      ggtitle(tit)
  )
}

line_chart(df=data,
           x="Quarter",y="Operations",
           tit="OPERATIONS BY QUARTER",
           xtit="QUARTER", ytit="OPERATIONS")
Run Code Online (Sandbox Code Playgroud)

非常感谢

r ggplot2

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

使用React更新道具上的C3图表

我试图在数据更改时美化作为React组件编写的C3图表的更新.数据通过其props从父组件流向组件.

我现在的解决方案"有效"但似乎不是最佳的:当新数据进入时,整个图表会重新生成.我想转换到新状态(行移动而不是整个图表更新闪烁).C3 API似乎有很多方法,但我找不到如何到达图表.

var React = require("react");
var c3 = require("c3");

var ChartDailyRev = React.createClass({
    _renderChart: function (data) {
        var chart = c3.generate({
            bindto: '#chart1',
            data: {
              json: data,
              keys: {
                  x: 'date',
                  value: ['requests', 'revenue']
              },
              type: 'spline',
              types: { 'revenue': 'bar' },
              axes: {
                'requests': 'y',
                'revenue': 'y2'
              }
            },
            axis: {
                x: { type: 'timeseries' },
                y2: { show: true }
            }
        });
    },
    componentDidMount: function () {
        this._renderChart(this.props.data);
    },
    render: function () {
        this._renderChart(this.props.data);
        return ( …
Run Code Online (Sandbox Code Playgroud)

reactjs c3

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

db.session.com是否在Flask-SQLAlchemy中更改应用程序上下文?

我正在为pytest配置一个fixture来创建一个烧瓶app实例.我的应用程序是使用Application Factories模式创建的.我正处于将其连接到数据库的阶段,并且很难理解2种模式之间的区别.

# project/__init__.py
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy


db = SQLAlchemy()


def create_app():
    app = Flask(__name__)

    app_settings = os.getenv('APP_SETTINGS')
    app.config.from_object(app_settings)

    db.init_app(app)

    [blueprint code]

    return app
Run Code Online (Sandbox Code Playgroud)

在我的夹具中,我想我理解需要:

  • db.create_all() 在安装过程中:创建我的表格
  • db.drop_all() 拆解期间:测试后清理数据库
  • db.session.remove() 在拆解过程中:在测试中频繁访问数据库时,请避免使用postgres上的一些奇怪锁定

第一个设置(灵感来自Miguel Grinberg的书)对我有意义:

import pytest
from project import create_app, db


@pytest.fixture
def app():
    app = create_app()
    with app.app_context():
        db.create_all()
        yield app
        db.session.remove()
        db.drop_all()
Run Code Online (Sandbox Code Playgroud)

它还匹配我在交互式会话中获得的行为,我需要激活/推送app_context绑定数据库:

Python 3.6.1 (default, Jun 21 2017, 18:45:41) 
[GCC 4.9.2] on linux
Type "help", …
Run Code Online (Sandbox Code Playgroud)

python pytest flask flask-sqlalchemy

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

在osx上拒绝使用provision.sh的流动权限

我有一个问题与在OS X上运行一个盒子有关,之前在Windows上成功测试过Vagrantfile/provision.该框具有完全在VM上运行Ansible的特殊性,但我认为问题出现之前.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/trusty64"

  config.vm.hostname = "rubicon.vm"

  config.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--cpus", "2" ]
      vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
  end

  config.vm.network "forwarded_port", guest: 8888, host: 8888
  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.synced_folder ".", "/vagrant"

  config.vm.provision :shell,
    :keep_color => true,
    :inline => "export PYTHONUNBUFFERED=1 && export ANSIBLE_FORCE_COLOR=1 && cd /vagrant && ./provision.sh"
end
Run Code Online (Sandbox Code Playgroud)

我在配置步骤中收到错误:

/tmp/vagrant-shell: line 1: ./provision.sh: Permission denied
Run Code Online (Sandbox Code Playgroud)

要验证是否找到(1)provision.sh并且(2)用户应该是root用户并拥有所有权限,我修改了提供行:

:inline => "cd /vagrant …
Run Code Online (Sandbox Code Playgroud)

vagrant vagrantfile

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

评论R管道的最佳做法%>%

使用R和dplyr/tidyr编写长管道时,是否有人找到了添加注释的好方法?

我知道函数语法已经非常具有表现力,但有时可以将多个动作"分组"在一起,我想知道是否更好地在多个管道中打破整个事物并在它们之间发表评论或者是否有一种方法可以很好地格式化管道内的评论.

r dplyr tidyr

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