小编Mat*_* W.的帖子

尝试在 Spyder IPython 控制台中初始化 Dash 时出错

尝试使用 Dash 运行简单的仪表板时出现错误。我在 Python 3.4 中使用 Spyder。我已经pip installed dash, dash_core_components, dash_html_compenents..

我的代码:

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A web application framework for Python.
    '''),

    dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
            ],
            'layout': {
                'title': 'Dash Data Visualization'
            }
        }
    ) …
Run Code Online (Sandbox Code Playgroud)

python spyder plotly-dash

7
推荐指数
2
解决办法
5438
查看次数

在python中取第一个非null

我正在尝试从数据帧中的多个pandas系列中获取第一个非null值.

df = pd.DataFrame({'a':[2, np.nan, np.nan, np.nan],
              'b':[np.nan, 5, np.nan, np.nan],
              'c':[np.nan, 55, 13, 14],
              'd':[np.nan, np.nan, np.nan, 4],
              'e':[12, np.nan, np.nan, 22],
          })

     a    b     c    d     e
0  2.0  NaN   NaN  NaN  12.0
1  NaN  5.0  55.0  NaN   NaN
2  NaN  NaN  13.0  NaN   NaN
3  NaN  NaN  14.0  4.0  22.0
Run Code Online (Sandbox Code Playgroud)

在这里df我想创建一个新列'f',并将其设置为'a'如果a不为null,'b'如果b不为null等等.

我可以做一堆效率低下的np.where语句.

df['f'] = np.where(df.a.notnull(), df.a,
              np.where(df.b.notnull(), df.b,
                   etc.))
Run Code Online (Sandbox Code Playgroud)

我调查df.a or df.b or df.c等等

结果应该是这样的:

     a    b …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

使用R中的dplyr查找其中一列字符串位于另一列中的行

试图拉回其中一列中的值作为字符串存在于另一列(同一行中)的行。

我有一个df:

A <- c("cat", "dog", "boy")
B <- c("cat in the cradle", "meet the parents", "boy mmets world")

df <- as.data.frame(A, B)

A       B
cat     cat in the cradle
dog     meet the parents
boy     boy meets world
Run Code Online (Sandbox Code Playgroud)

我正在尝试类似的事情:

df2 <- df %>%
          filter(grepl(A, B)) # doesn't work because it thinks A is the whole column vector

df2 <- df %>%
          filter(B %in% A) # which doesn't work because it has to be exact
Run Code Online (Sandbox Code Playgroud)

我要它产生

A       B
cat     cat in …
Run Code Online (Sandbox Code Playgroud)

regex r dplyr grepl

5
推荐指数
2
解决办法
1398
查看次数

如何在python中映射具有多个参数的函数

我正在寻找一个带有特定参数列表的函数。

def add(x, y):
    return(x + y)

list1 = [1, 2, 3]
list2 = [3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我已经能够成功地使用map一个lambda函数来完成它。

list(map(lambda x, y: add(x, y), list1, list2))
Run Code Online (Sandbox Code Playgroud)

我想知道,使用迭代器这样做更好吗?我尝试了以下但无法弄清楚:

[add(x, y), for x, y in list1, list2]
Run Code Online (Sandbox Code Playgroud)

或者

[add(x, y), for x in list1 for y in list2]
Run Code Online (Sandbox Code Playgroud)

提前致谢!

python iterator list-comprehension list

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

映射str.contains跨越pandas DataFrame

初学者与python - 我正在寻找创建字符串的字典映射,以及相关的值.我有一个数据框,并希望创建一个新列,如果字符串匹配,它将列标记为x.

df = pd.DataFrame({'comp':['dell notebook', 'dell notebook S3', 'dell notepad', 'apple ipad', 'apple ipad2', 'acer chromebook', 'acer chromebookx', 'mac air', 'mac pro', 'lenovo x4'],
              'price':range(10)})
Run Code Online (Sandbox Code Playgroud)

例如,我想采取上述内容df并创建一个新列df['company']并将其设置为字符串映射.

我在考虑做类似的事情

product_map = {'dell':'Dell Inc.',
               'apple':'Apple Inc.',
               'acer': 'Acer Inc.',
               'mac': 'Apple Inc.',
               'lenovo': 'Dell Inc.'}
Run Code Online (Sandbox Code Playgroud)

然后我想迭代它来检查df.comp列,看看每个条目是否包含其中一个字符串,并将df.company列设置为字典中的值.

不知道如何正确地做到这一点.

python dictionary apply dataframe pandas

5
推荐指数
2
解决办法
1494
查看次数

清理电子邮件链以进行文本分析python

我有一些文字:

text = """From: 'Mark Twain' <mark.twain@gmail.com>
To: 'Edgar Allen Poe' <eap@gmail.com>
Subject: RE:Hello!

Ed,

I just read the Tell Tale Heart. You\'ve got problems man.

Sincerely,
Marky Mark

From: 'Edgar Allen Poe' <eap@gmail.com>
To: 'Mark Twain' <mark.twain@gmail.com>
Subject: RE: Hello!

Mark,

The world is crushing my soul, and so are you.

Regards,
Edgar"""
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

"From: 'Mark Twain' <mark.twain@gmail.com>\nTo: 'Edgar Allen Poe' <eap@gmail.com>\nSubject: RE:Hello!\n\nEd,\n\nI just read the Tell Tale Heart. You've got problems man.\n\nSincerely,\nMarky Mark\n\nFrom: 'Edgar Allen Poe' <eap@gmail.com>\nTo: 'Mark …
Run Code Online (Sandbox Code Playgroud)

python text

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

simple_salesforce python中的父子关系查询,从有序的dicts中提取

我正在尝试使用simple_salesforcepython中的包查询salesforce中的信息.

问题是,它是一个嵌套字段,它是父子关系的一部分,成为有序字典中的有序字典

我想要从Opportunity对象中找到id,以及与该记录关联的accountid.

SOQL查询可能看起来像......

query = "select id, account.id from opportunity where closedate = last_n_days:5"
Run Code Online (Sandbox Code Playgroud)

在SOQL(salesforce对象查询语言)中,点表示数据库中的父子关系.所以我试图从机会对象获取id,然后从该记录上的帐户对象获取相关的id.

出于某种原因,Id很好,但是account.id嵌套在有序字典中的有序字典中:

q = sf.query_all(query)
Run Code Online (Sandbox Code Playgroud)

这会拉回一个有序的字典..

OrderedDict([('totalSize', 455),
             ('done', True),
             ('records',
              [OrderedDict([('attributes',
                             OrderedDict([('type', 'Opportunity'),
                                          ('url',
Run Code Online (Sandbox Code Playgroud)

我会拉records一块ordereddict来创造一个df

df = pd.DataFrame(q['records'])
Run Code Online (Sandbox Code Playgroud)

这给了我3列,一个有序的dict调用'attributes',Id另一个有序的dict调用'Account'.我正在寻找一种('BillingCountry', 'United States')从嵌套的有序字典中提取出来的方法'Account'

[OrderedDict([('attributes',
               OrderedDict([('type', 'Opportunity'),
                            ('url',
                             '/services/data/v34.0/sobjects/Opportunity/0061B003451RhZgiHHF')])),
              ('Id', '0061B003451RhZgiHHF'),
              ('Account',
               OrderedDict([('attributes',
                             OrderedDict([('type', 'Account'),
                                          ('url',
                                           '/services/data/v34.0/sobjects/Account/001304300MviPPF3Z')])),
                            ('BillingCountry', 'United States')]))])
Run Code Online (Sandbox Code Playgroud)

编辑:澄清我在寻找什么.

我希望以一个数据框结束,每个查询字段都有一列.

当我'records'使用df = pd.DataFrame(sf.query_all(query)['records'])它将片段放入DataFrame时,它给了我:

attributes  Id …
Run Code Online (Sandbox Code Playgroud)

python salesforce ordereddictionary soql pandas

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

绘图功能在lapply期间不会获取名称

我试图允许lapply访问我正在喂它的情节列表的名称.我看过其他一些看似非常相似的帖子,但仍不确定如何将列表的名称向量传递给它.

require(mlbench)
require(gridExtra)
require(dplyr)
require(ggplot2)

data(Soybean)

dfs <- lapply(Soybean, function(x) data.frame(table(x, exclude = NULL)))

display_charts <- function(x){
  ggplot(data.frame(x) %>% select(x = 1, y = 2), aes(x = x, y = y)) + 
    geom_col(col = 'red',
             fill = 'green',
             alpha = 0.3) +
    labs(title = names(x),
         x = names(x),
         y = 'Frequency')
}

all_charts <- lapply(dfs, display_charts)

n <- length(all_charts)
nCol <- floor(sqrt(n))
do.call("grid.arrange", c(all_charts, ncol=nCol))
Run Code Online (Sandbox Code Playgroud)

我试图通过调整lapply函数来调整display_charts函数来接受一个name参数,然后替换names(x)name,然后创建一个名为的向量nms <- names(dfs),然后做, …

r ggplot2 lapply

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

熊猫数据透视表到堆积的条形图

我正在尝试使用此数据透视表,并创建按战斗类型划分的成败的堆积条形图。

import pandas as pd
import numpy as np

np.random.seed(1)
df = pd.DataFrame({'attacker_outcome':np.random.choice(['win', 'loss'], 20, replace=True),
                'battle_type':np.random.choice(['pitched battle', 'siege', 'ambush', 'razing'], 20, replace=True)})


   attacker_outcome     battle_type
0              loss          ambush
1              loss           siege
2               win          ambush
3              loss           siege
4              loss           siege
5               win          ambush
6               win           siege
7               win          razing
8              loss           siege
9              loss          ambush
10             loss          razing
11             loss           siege
12              win          razing
13             loss          razing
14              win          ambush
15              win  pitched battle
16             loss          ambush
17             loss           siege …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

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

根据最近的日期进行映射

我想列出一个具有相关“所有者”和日期的电子邮件列表,并将它们与收到的订单进行匹配,并带有日期和值。匹配密钥是电子邮件,但我希望它在最近的日期匹配,因为在某些情况下,电子邮件地址可能有2个不同的所有者。

可重现的示例:

require(dplyr)

e <- c("e3r@gmail.com", "e3r@gmail.com", "poi@aol.com", "tyu@gmail.com", "poi@aol.com", "tyu@gmail.com")
d <- c("2017-01-01", "2017-04-05", "2017-04-12", "2017-05-05", "2017-08-05", "2017-12-05")
p <- c("Jeff", "Sam", "Sam", "Jeff", "Matt", "Matt")
df <- data_frame(e, d, p) %>% mutate(d=as.Date(d))

o <- c("e3r@gmail.com", "poi@aol.com", "sdf@gmail.com", "tyu@gmail.com")
d2 <- c("2017-02-02", "2017-04-28", "2017-05-05", "2017-07-01")
a <- c(600.50, 3000, 4999.99, 2050.6)
df2 <- data_frame(o, d2, a) %>% mutate(d2 = as.Date(d2))
Run Code Online (Sandbox Code Playgroud)

第一个df是电子邮件地址的地图归p个人所有。这df2是这些电子邮件地址附带的订单,我想在该列上添加一列df2,以固定正确的“所有者”,即为该电子邮件地址分配了日期并且最接近日期的人。

预期结果:

> df2
# A tibble: 4 x 3
              o …
Run Code Online (Sandbox Code Playgroud)

join r left-join dplyr

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