小编Rap*_*lva的帖子

OSMNx:使用OSM id获取节点的坐标

我使用Python库OSMNx在城市旅行的几个步骤之间绘制最佳路线.最后一个变量是OSM ID列表.

现在,我正在尝试将此路由保存为shp或json文件.问题是我需要每个节点的纬度/经度,但我没有找到OSMNx函数来做到这一点.

我尝试了get_route_edge_attributes(但坐标不是此函数的有效属性).有没有办法用这个id获取OSM节点的坐标?

提前致谢.

python openstreetmap networkx

6
推荐指数
2
解决办法
3622
查看次数

Geopandas:多边形和点之间的差异()方法

我正在测试 geopandas 来做一些非常简单的事情:使用差异方法删除位于圆内的 GeoDataFrame 的一些点。

这是我的脚本的开头:

%matplotlib inline
# previous line is because I used ipynb
import pandas as pd
import geopandas as gp
from shapely.geometry import Point
[...]
points_df = gp.GeoDataFrame(csv_file, crs=None, geometry=geometry)
Run Code Online (Sandbox Code Playgroud)

这是 points_df 的第一行:

    Name        Adress      geometry
0   place1      street1     POINT (6.182674 48.694416)
1   place2      street2     POINT (6.177306 48.689889)
2   place3      street3     POINT (6.18 48.69600000000001)
3   place4      street4     POINT (6.1819 48.6938)
4   place5      street5     POINT (6.175694 48.690833)
Run Code Online (Sandbox Code Playgroud)

然后,我添加一个点,该点将包含第一个 GeoDF 的几个点:

base = points_df.plot(marker='o', color='red', markersize=5) …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas difference geopandas

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

pandas自定义idxmax()函数具有特殊处理的相等性

我正在处理一个充满选举数据的csv文件.我的原始样本可以表示为:

        city      party1     party2     party3
   0    city1     50         107        114
   1    city2     181        323        326
   2    city3     26         28         75
   3    city4     32         47         59
   4    ciy5      8          21         21
Run Code Online (Sandbox Code Playgroud)

我使用pandas的idxmax()函数来创建一个名为"winner"的新列,如下所示:

 mydf['winner'] = mydf[['party1','party2','party3']].idxmax(axis=1)
Run Code Online (Sandbox Code Playgroud)

我的目标是确定哪个政党在每个城市中处于第一位.结果如下:

        city      party1     party2     party3      winner
   0    city1     50         107        114         party3
   1    city2     181        323        326         party3
   2    city3     26         28         75          party3
   3    city4     32         47         59          party3
   4    ciy5      8          21         21          party2
Run Code Online (Sandbox Code Playgroud)

获胜者的最后一个原始值是假的,因为party2和party3具有相同的分数.

是否可以在函数中包含一个异常,idxmax考虑两个值的相等性并给出"等式"?

python pandas

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

D3:对象内具有空值的非连续折线图

我正在尝试制作一个与 D3 创建者本人提供的示例非常相似的折线图。

为了处理空值,他使用了 Defined() 函数,如下所示:

var line = d3.line()
.defined(function(d) { return d; })
.x(function(d) { return x(d.x); })
.y(function(d) { return y(d.y); });
Run Code Online (Sandbox Code Playgroud)

然后,如果找到空值而不是对象,它将被忽略,并且图表中将出现一个洞,如下所示:

在此输入图像描述

在此示例中,数据格式如下:

data = [null, {"x":x1, "y":y1}, {"x":x2, "y":y2}, null]
Run Code Online (Sandbox Code Playgroud)

但我正在研究一个更棘手的 cas,因为它是一个时间系列,格式如下:

data = [{"date":1980,"value":80},,{"date":1985,"value":82},{"date":1990,"valye":74},{"date":1995,"value":83},{"date":2000,"value":83},{"date":2005,"value":81},{"date":2010,"value":null},{"date":2015,"value":null}]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,空值位于多个对象内。因此,之前描述的 Defined() 函数不能正常工作,我的图形线如下所示:

在此输入图像描述

最后的值被视为 0,而不是数据集中的“空白”。所以我的问题是:我可以修改定义的函数来忽略空值吗,就像 Mike Bostock 的示例一样?

这是我的折线图的完整代码:

<!DOCTYPE html>
<meta charset="utf-8">
<style> /* set the CSS */

.line {
  stroke-width: 2px;
  fill:none;
}

.line:hover{
  stroke:#c2c2c2;
}


</style>
<body>

<script src="https://d3js.org/d3.v4.min.js"></script>
<script>

var margin = {top: 20, …
Run Code Online (Sandbox Code Playgroud)

javascript linegraph object d3.js

2
推荐指数
1
解决办法
2181
查看次数