【发布时间】:2021-06-15 09:02:24
【问题描述】:
我正在尝试从DataFrame 创建一个.geojson 文件。我有这张桌子:
long lat elev
0 40.392987 -3.652552 0.0
1 41.471062 2.041841 0.0
2 41.410016 2.175180 0.0
3 NaN NaN NaN
这是创建.geojson文件的函数
def data2geojson(df):
features = []
df.apply(lambda X: features.append(
geojson.Feature(geometry=geojson.Point((X["lat"],
X["long"],
X["elev"])),
properties={"country": "Spain"})), axis=1)
with open('map.geojson', 'w') as fp:
geojson.dump(geojson.FeatureCollection(features), fp, sort_keys=True)
如果我只选择前三列但抛出下一个错误,则此代码有效:
Out of range float values are not JSON compliant: nan
比起try: 和except ValueError:,我不知道如何处理这个问题
但是抛出异常会破坏函数并且如果有更多值则无法继续...我该如何处理??
【问题讨论】:
-
您应该将 NaN 值替换为符合 JSON 的值(例如整数或字符串)。或者您可以删除 NaN 行。你想用空值做什么?
-
放下它们就可以了
-
嗯,你可以使用pandas函数
dropna()(见pandas.pydata.org/pandas-docs/stable/reference/api/…) -
谢谢!如果你像一个答案一样发布,我会验证它。
标签: python pandas geopandas geocode