这是我的 mongo 收藏“销售”:
{"title":"Foo", "hash": 17, "num_sold": 49,
"place": "ABC"}
{"title":"Bar", "hash": 18, "num_sold": 55,
"place": "CDF"}
{"title":"Baz", "hash": 17, "num_sold": 55,
"place": "JKN"}
{"title":"Spam", "hash": 17, "num_sold": 20,
"place": "ZSD"}
{"title":"Eggs", "hash": 18, "num_sold": 20,
"place": "ZDF"}
Run Code Online (Sandbox Code Playgroud)
我想按哈希分组并返回具有最大“num_sold”的文档。所以作为输出我想看到:
{"title":"Baz", "hash": 17, "num_sold": 55,
"place": "JKN"}
{"title":"Bar", "hash": 18, "num_sold": 55,
"place": "CDF"}
Run Code Online (Sandbox Code Playgroud)
我知道聚合运算符的基础知识,这是我如何分组并获取 num_sold 最大值的方法,但我需要与最大值相对应的整个文档,而不仅仅是值。
db.getCollection('sales').aggregate([
{$group: {_id: "$hash", max_sold : {$max: '$value'}}}
])
Run Code Online (Sandbox Code Playgroud)
在 SQL 中我会用 join 来完成,但在 mongo 中。我还读到,在 mongo 中,组和排序不能很好地协同工作。
有人能告诉我下面两个连续点的确切含义吗?
SELECT O.uid
FROM QAI..sysobjects O
Run Code Online (Sandbox Code Playgroud)
这适用于SQL-Server.
这是我的问题:
df = pd.DataFrame({'A': ['one', 'one', 'two', 'two', 'one'] ,
'B': ['Ar', 'Br', 'Cr', 'Ar','Ar'] ,
'C': [1, 0, 0, 1,0 ]})
Run Code Online (Sandbox Code Playgroud)
我想生成类似pd.crosstab
函数输出的东西,但是列和行的交集上的值应该来自第三列的聚合:
Ar, Br, Cr
one 0.5 0 0
two 1 0 0
Run Code Online (Sandbox Code Playgroud)
例如,在'C'列中有两个'one'和'Ar'对应值的情况是1,0我们将列'C'(0 + 1)中的值相加并除以'C'列中的值的数量',所以我们得到(0 + 1)/ 2 = 0.5.每当组合不存在时,我们(如'Cr'和'one')我们将它设置为零.有什么想法吗?
这是我的数据帧:
A B
0 asdf|afsdf|fasd sdsd|wer|wer
1 sdfsdf sdfsdff
2 sdf|s sdfsde|sdf
Run Code Online (Sandbox Code Playgroud)
我想形成一个列C
,其中包含从列A
到列的连接值, B
直到第一个|
,如果|
不存在,那么它将简单地连接两个列.同时连接时我想--
在这里插入列C
应该是什么样子:
C
0 asdf--sdsd
1 sdfsdf--sdfsdff
2 sdf--sdfsde
Run Code Online (Sandbox Code Playgroud)
我可以通过每一行df.loc
并得到我需要的东西,但它很慢,我想知道是否有更快的方法.
我创建了以下批处理文件:jupyter_nn.bat
。内部文件我有:
cd "C:\My_favorite_path"
activate neuralnets
jupyter notebook
Run Code Online (Sandbox Code Playgroud)
因此,目标是激活conda虚拟环境并启动jupyter Notebook。由于某些原因,这不起作用。窗户立即关闭。如果我从cmd运行此批处理文件,则仅执行activate neulranets
。我已经尝试过pause
和pause>nul
其他伏都教舞蹈。有什么建议么?这也适用于Windows 7。
这是我的例子。我正在读取以下文件:sample_data
library(dplyr)
txt <- c('"", "MDN", "Cl_Date"',
'"1", "A", "2017-04-15 15:10:42.510"',
'"2", "A", "2017-04-01 14:47:23.210"',
'"3", "A", "2017-04-01 14:49:54.063"',
'"4", "B", "2017-04-30 13:25:00.000"',
'"5", "B", "2017-04-03 17:53:13.217"',
'"6", "B", "2017-04-15 15:17:43.780"')
ts <- read.csv(text = txt, as.is = TRUE)
ts$Cl_Date <- as.POSIXct(ts$Cl_Date)
ts <- ts %>% group_by(MDN) %>% arrange(Cl_Date) %>%
mutate(time_diff = c(0,diff(Cl_Date)))
ts <-ts[order(ts$MDN, ts$Cl_Date),]
Run Code Online (Sandbox Code Playgroud)
结果我有
MDN Cl_Date time_diff
A 4/1/2017 14:47 0
A 4/1/2017 14:49 2.514216665
A 4/15/2017 15:10 20180.80745
B 4/3/2017 17:53 0
B 4/15/2017 15:17 …
Run Code Online (Sandbox Code Playgroud) 我想创建仅包含键的字典。例如:
Dictionary <string, double> SmplDict= new Dictionary<string, double>();
SmplDict.Add("KeyOne");
SmplDict.Add("KeyTwo");
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用一些预定义值进行初始化,但这些值将被覆盖,因此我现在只想声明键。我试过
SmpDict.Add("KeyOne", null)
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
这是我的 pymongo 电话
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['somedb']
collection = db.some_details
pipe = [{'$group': {'_id': '$mvid', 'count': {'$sum': 1}}}]
TestOutput = db.collection.aggregate(pipeline=pipe)
print(list(TestOutput))
client.close()
Run Code Online (Sandbox Code Playgroud)
由于某种原因,结果列表为空,而在 Robomongo 中,我得到非空输出。
格式不正确?
确切的 Robomongo 查询是
db.some_details.aggregate([{$group: {_id: '$mvid', count: {$sum: 1}}}])
Run Code Online (Sandbox Code Playgroud)
更新 输出看起来像
{
"result" : [
{
"_id" : "4f973d56a64facfaa7c3r4rf262ad5be695eef329aff7ab4610ddedfb8137427",
"count" : 84.0000000000000000
},
{
"_id" : "a134106e1a1551d296fu777cedc933e7df2d0a9bc5f41de047aba3ee29bace78",
"count" : 106.0000000000000000
},
],
"ok" : 1.0000000000000000
}
Run Code Online (Sandbox Code Playgroud) 这是我的数据框:
my_df = pd.DataFrame({'group':['a','a', 'a','b','b'], 'date':['2017-01-02', '2017-01-02','2017-03-01', '2018-02-05', '2018-04-06']})
my_df['date']= pd.to_datetime(my_df['date'], format = '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
我想为每个组添加等级,其中将为相同的值分配相同的等级。
这是我想要的输出:
date group rank
0 2017-01-02 a 1
1 2017-01-02 a 1
2 2017-03-01 a 2
3 2018-02-05 b 1
4 2018-04-06 b 2
Run Code Online (Sandbox Code Playgroud)
我想我可以通过分组两次并进行排名和重新加入原始数据框来做到这一点,但是我想知道是否有更快的方法来做到这一点。
我正在 R 中运行以下代码
library(h2o)
h2o.init()
df <- as.h2o(diamonds)
Run Code Online (Sandbox Code Playgroud)
并返回以下错误:
ERROR: Unexpected HTTP Status code: 412 Precondition Failed (url = http://localhost:54321/3/Parse)
water.exceptions.H2OIllegalArgumentException
[1] "water.exceptions.H2OIllegalArgumentException: Provided column type ordered is unknown. Cannot proceed with parse due to invalid argument."
[2] " water.parser.ParseSetup.strToColumnTypes(ParseSetup.java:240)"
[3] " water.api.ParseHandler.parse(ParseHandler.java:21)"
[4] " sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"
[5] " sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)"
[6] " sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)"
[7] " java.lang.reflect.Method.invoke(Method.java:498)"
[8] " water.api.Handler.handle(Handler.java:60)"
[9] " water.api.RequestServer.serve(RequestServer.java:462)"
[10] " water.api.RequestServer.doGeneric(RequestServer.java:295)"
[11] " water.api.RequestServer.doPost(RequestServer.java:221)"
[12] " javax.servlet.http.HttpServlet.service(HttpServlet.java:755)"
[13] " javax.servlet.http.HttpServlet.service(HttpServlet.java:848)"
[14] " org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)"
[15] " org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)" …
Run Code Online (Sandbox Code Playgroud)