评级巴士根据Carto上的属性和映射停止

时间:2017-11-08 04:47:46

标签: python sql data-visualization cartodb opendata

我有一个巴士站数据集,我想绘制到Carto上。数据集包括关于公交车站的属性列,我想创建一个名为Rating的新列,该列将根据这些属性(公交车站是否有路线图或行人友好程度)进行评级。

首先,我使用此sql代码创建了一个名为rating的新列。

alter table metro_bus_stops
add rating int NOT NULL DEFAULT(0)

然后,我使用以下代码为有自行车架的公交车站增加3个点(attribute = bstp_has_bkrs)

update metro_bus_stops
SET rating = rating + 3
WHERE bstp_has_bkrs = 'Y'

我总共有27个属性可以在评分中加或减积分。我想最终根据这些评分在Carto上映射公交站点。有没有更好的方法来处理这个而不是单独为每个属性添加计算?我想知道我是否可以使用if else语句在Python中做得更好。

This是我正在使用的巴士站数据,如果有帮助的话。

任何反馈都将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以将任意数量的列组合到SQL语句中,并将它们与AND和OR等逻辑运算符组合在一起。这应该是最简单的方法,例如:

update metro_bus_stops
SET rating = rating + 3
WHERE bstp_has_bkrs = 'Y' 
   OR attribute2 = value2 AND
   AND attribute3 > value3 
   OR ...