尝试使用 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) 我正在尝试从数据帧中的多个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) 试图拉回其中一列中的值作为字符串存在于另一列(同一行中)的行。
我有一个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) 我正在寻找一个带有特定参数列表的函数。
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 - 我正在寻找创建字符串的字典映射,以及相关的值.我有一个数据框,并希望创建一个新列,如果字符串匹配,它将列标记为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列设置为字典中的值.
不知道如何正确地做到这一点.
我有一些文字:
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) 我正在尝试使用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) 我试图允许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),然后做, …
我正在尝试使用此数据透视表,并创建按战斗类型划分的成败的堆积条形图。
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) 我想列出一个具有相关“所有者”和日期的电子邮件列表,并将它们与收到的订单进行匹配,并带有日期和值。匹配密钥是电子邮件,但我希望它在最近的日期匹配,因为在某些情况下,电子邮件地址可能有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)