【发布时间】:2016-06-29 16:35:06
【问题描述】:
我有以下格式的数据框:
ORIGIN UNIQUE_CARRIER DEST avg_arr_delay
JFK AA LAX 14.56040268
JFK B6 LAX 7.085201794
JFK DL LAX 6.475770925
JFK VX LAX 3.939759036
LAX AA MCI 2.3
LOG DL SEA 3.4
我在图形数据库中为始发机场和目的地机场创建了两个节点。它与一个名为“delayed_by”的属性相关,该属性指向平均到达延迟。节点之间的关系如下:
MERGE (origin:origin_airport {name: row.ORIGIN})
MERGE (destination:dest_airport {name: row.DEST})
MERGE (carrier:Carrier {name: row.UNIQUE_CARRIER})
MERGE (origin)-[r:delayed_by]->(destination)
SET r.arr_delay=row.avg_arr_delay
我正在尝试查找特定始发地和目的地机场的平均延误。在这里,试图在 JFK 和 LAX 之间找到。 JFK 到 LAX 有 4 个 arr_delay 值,我需要找到这些值的平均值。我正在使用以下密码查询来查找平均值:
MATCH (oa:origin_airport {name:'JFK'})-[r:delayed_by]->(da:dest_airport
{name:'LAX'})
RETURN oa.name AS Origin,
AVG(toFloat(r.arr_delay)) As Arrdelay,
da.name AS Destination
它取最后一个值 3.939759036 并返回该值,而不是平均值。但我预计低于价值。
ORIGIN DEST Average
JFK LAX 8.0152
此外,在 unique_carrier、始发地和目的地之间建立关系的最佳方式是什么,由 delay_by 关系链接。通过这样做,我需要选择一个特定的航空公司,比如 JFK 和 LAX 之间的 AA,然后找到平均延误。像下面这样的东西有效吗?
MERGE (origin:origin_airport {name: row.ORIGIN})
MERGE (destination:dest_airport {name: row.DEST})
**MERGE (carrier:Carrier {name: row.UNIQUE_CARRIER})**
CREATE (origin)-[r:delayed_by]->(destination)
**CREATE (origin)-[:from]->(carrier)-[r1:delayed_by]->(destination)**
SET r.arr_delay=row.avg_arr_delay
**SET r1.arr_delay=row.avg_arr_delay**
有人可以帮我实现这个输出吗?
【问题讨论】: