我有 2 个带有几何列的地理数据框,我将一些几何图形从 1 个复制到另一个。
这对于多边形效果很好,但对于任何(有效)多多边形都会返回 ValueError。
请指教如何解决这个问题?我不知道是否/如何/为什么应该更改 MultiPolygon 以获得“相等的长度键和值”?
geodata01.loc[index, 'geometry'] = geodata02.loc[index, 'geometry']
Run Code Online (Sandbox Code Playgroud)
这对于多边形效果很好。只有使用 MultiPolygons 我才能得到:
ValueError
if len(labels) != len(value):
--> 611 raise ValueError('Must have equal len keys and value '
612 'when setting with an iterable')
Run Code Online (Sandbox Code Playgroud)
我也无法对缓冲或简化的 MultiPolygon 进行分配(MultiPolygon 是有效的,我可以绘制、缓冲、简化,但无法分配它):
geodata01.loc[index, 'geometry'] = geodata01.loc[index, 'geometry'].buffer(0)
#or
geodata01.loc[index, 'geometry'] = geodata01.loc[index, 'geometry'].simplify(tolerance=0)
Run Code Online (Sandbox Code Playgroud)
这会返回相同的 ValueError。
你能告诉我如何在我的 Synology(DS214play,DSM 6.0.1-7393 Update 1)上运行带有模块的 Python3?我想要什么:在我的 Synology 上运行 Python3 中的 Tweepy 和其他模块。
我被困的地方:
如何让 PIP3 安装 Tweepy,如果我尝试我得到: Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
显然我安装了 Python 2.7 但我不知道......
root@DiskStation:/volume1/@appstore/python3/include# ls
get-pip.py python3.4m
root@DiskStation:/volume1/@appstore/python3/include# python3 get-pip.py
-ash: python3: command not found
root@DiskStation:/volume1/@appstore/python3/include# python get-pip.py
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)所以为了让 PIP3 工作,我需要了解 Python2.7 的安装位置,甚至可能如何删除它(如果有必要)。
最好知道哪个 Python3 软件包最适合使用(默认来自 Synology DSM 软件包管理器或 SynoCommunity Python3 pacakge)
因为当通过 SSH(使用 PuTTY)连接到我的 Synology 时,我可以在 DSM 包管理器和相关文件夹中看到 Python3。
但是我没有看到任何 Python2.7 包(我相信它必须在那里),并且在与 SSH 连接时我找不到任何 Python 2.7 文件夹,即使很艰难我暗示必须有一个“/usr/lib/python2.7”。 7/site-packages " …
如果我使用"inplace = True"重置我的Pandas数据帧的索引(遵循文档),它将返回一个类'NoneType'.如果我使用"inplace = False"重置索引,则返回带有新索引的数据帧.为什么?
print(type(testDataframe))
print(testDataframe.head())
Run Code Online (Sandbox Code Playgroud)
收益:
<class 'pandas.core.frame.DataFrame'>
ALandbouwBosbouwEnVisserij AantalInkomensontvangers AantalInwoners \
0 73780.0 None 16979120
1 290.0 None 25243
2 20.0 None 3555
Run Code Online (Sandbox Code Playgroud)
Set_index返回一个新索引:
testDataframe = testDataframe.set_index(['Codering'])
print(type(testDataframe))
print(testDataframe.head())
Run Code Online (Sandbox Code Playgroud)
回报
<class 'pandas.core.frame.DataFrame'>
ALandbouwBosbouwEnVisserij AantalInkomensontvangers \
Codering
NL00 73780.0 None
GM1680 290.0 None
WK168000 20.0 None
BU16800000 15.0 None
Run Code Online (Sandbox Code Playgroud)
但是带有"inplace = True"的set_index相同:
testDataframe = testDataframe.set_index(['Codering'], inplace=True)
print(type(testDataframe))
print(testDataframe.head())
Run Code Online (Sandbox Code Playgroud)
回报
<class 'NoneType'>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-50-0d6304ebaae1> in <module>()
Run Code Online (Sandbox Code Playgroud)
版本信息:
python: 3.4.4.final.0
python-bits: 64 …Run Code Online (Sandbox Code Playgroud) 托管在 AWS 的静态站点的不同类型文件的正确内容类型是什么,以及如何通过 boto3 以智能方式设置这些类型?
我使用upload_file 方法:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('allecijfers.nl')
bucket.upload_file('C:/Hugo/Sites/allecijfers/public/test/index.html', 'test/index.html', ExtraArgs={'ACL': 'public-read', 'ContentType': 'text/html'})
Run Code Online (Sandbox Code Playgroud)
这适用于 html 文件。我最初省略了导致文件下载的 ExtraArgs(可能是因为内容类型是二进制的?)。我发现这个页面说明了几种内容类型,但我不知道如何应用它。
例如,CSS 文件可能应该使用 'ContentType': 'text/css' 上传。但是js文件,index.xml等呢?以及如何以聪明的方式做到这一点?仅供参考,这是我当前从 Windows 上传到 AWS 的脚本,这需要 string.replace("\","/") 这可能也不是最聪明的?
for root, dirs, files in os.walk(local_root + local_dir):
for filename in files:
# construct the full local path
local_path = os.path.join(root, filename).replace("\\","/")
# construct the full S3 path
relative_path = os.path.relpath(local_path, local_root)
s3_path = os.path.join(relative_path).replace("\\","/")
bucket.upload_file(local_path, s3_path, ExtraArgs={'ACL': …Run Code Online (Sandbox Code Playgroud) (如何)我可以在 WooCommerce 中设置固定费用运费的 max_fee 吗?
将其添加到运输方式的固定费用设置中的成本字段中是有效的:
(1 * [qty]) + [fee min_fee = "2,5"]
Run Code Online (Sandbox Code Playgroud)
(即每个订单的运费 2,5 + 每个产品 1 欧元)-> 每个产品至少 3,5 并增加 + 1)。
但是,我想收取最低 3,50 美元(1 件商品)和最高 4,50 美元(2 件或更多商品)的费用。即在功能上这个公式:(3,5 * [qty]) 或 [fee **max_fee** = "4,5"]
这可能吗?/ 使用的正确语法是什么?我在任何地方都找不到这个。我只找到了这个参考(“为统一费率添加 max_fee 短代码属性”/“除了统一费率成本字段中的 min_fee 之外还允许 max_fee”),这似乎表明对固定费用(百分比除外)的 max_fee 的功能请求已实施。但我无法让它发挥作用。
import osmnx as ox
ox.__version__ # '0.13.0'
Run Code Online (Sandbox Code Playgroud)
我想使用伟大的 OSMNX 模块在地图上显示德国地铁 OSM 数据中已知的汉诺威地铁。但与纽约示例不同的是,不会返回任何结果:
G = ox.graph_from_place('Hannover, Germany',
retain_all=False, truncate_by_edge=True, simplify=True,
network_type='none', custom_filter='["railway"~"subway"]')
# EmptyOverpassResponse: There are no data elements in the response JSON
Run Code Online (Sandbox Code Playgroud)
我确实得到了使用“德国汉诺威”作为区域的其他类似查询的结果。我也没有得到巴黎或伦敦的地铁结果。我没有得到类似查询的结果,例如 custom_filter='["railway"~"tram"]' 或 '["railway"~"s-bahn"]' 或 '["network"~"metro"]'。
另外,如果我使用基础设施关键字参数来选择“railway”,则会返回广泛的 gdf:
G = ox.graph_from_place('Hannover, Germany', retain_all=False, truncate_by_edge=True, simplify=True,
network_type='none', infrastructure='way["railway"]')
gdfox = ox.graph_to_gdfs(G, nodes=False, edges=True, node_geometry=True, fill_edge_geometry=True)
gdfox.shape # (4422, 14)
Run Code Online (Sandbox Code Playgroud)
但我无法使用返回的列识别地铁?:
['u', 'v', 'key', 'osmid', 'service', 'oneway', 'length',
'geometry', 'name', 'maxspeed', 'ref', 'bridge', 'tunnel', …Run Code Online (Sandbox Code Playgroud)