9

我正在尝试构建一个GeoJSON 对象。我的输入是一个包含地址列、纬度列和经度列的 csv。然后我从坐标中创建了 Shapely 点,按给定的半径将它们缓冲出来,并通过映射选项获取坐标字典 - 到目前为止,一切都很好。然后,在参考了这个问题之后,我编写了以下函数来获取一系列字典:

def make_geojson(row): return {'geometry':row['geom'], 'properties':{'address':row['address']}}

我就这样应用了它:

data['new_output'] = data.apply(make_geojson, axis=1)

我的结果专栏充满了这些:<built-in method values of dict object at 0x10...

最奇怪的部分是,当我直接调用该函数时(make_geojson(data.loc[0])实际上,我确实得到了我期望的字典。也许更奇怪的是,当我调用从应用程序(例如data.output[0]()data.loc[0]['output']())获得的函数时,我得到了相当于以下列表: [data.loc[0]['geom'], {'address':data.loc[0]['address']}],即我要获取的字典的值(但不是键)。

对于那些在家玩的人,这里有一个玩具示例:

from shapely.geometry import Point, mapping
import pandas as pd

def make_geojson(row):
    return {'geometry':row['geom'], 'properties':{'address':row['address']}}

data = pd.DataFrame([{'address':'BS', 'lat':34.017, 'lon':-117.959}, {'address':'BS2', 'lat':33.989, 'lon':-118.291}])
data['point'] = map(Point, zip(data['lon'], data['lat']))
data['buffer'] = data['point'].apply(lambda x: x.buffer(.1))
data['geom'] = data.buffer.apply(mapping)
data['output'] = data.apply(make_geojson, axis=1)

如何在动作脚本中访问对象属性

嘿,我想访问 AS3 中的对象属性,我有许多对象的数组,例如老师,学生我需要代码如何访问老师的属性,

        private function init():void
        {
          //action is ArrayCollection contains teacher object and student object
            action=new ArrayCollection();
            action=srv.getData(id);
        }

当在 List 中获取 ArrayCollection 时,我的问题就在这里

<s:List id="list"  dataProvider="{action}">
<s:itemRenderer>
    <fx:Component>
        <s:IconItemRenderer labelField="What should I write ?? to access Teacher Name"/>
    </fx:Component>
</s:itemRenderer>
</s:List>
4

2 回答 2

3

谢谢帝斯曼指出这一点。经验教训:pandas 不适用于任意 Python 对象

所以这就是我最终要做的事情:

temp = zip(list(data.geom), list(data.address))
output = map(lambda x: {'geometry': x[0], 'properties':{'address':x[1]}}, temp)
于 2015-01-16T22:09:22.667 回答
1

我之所以写这篇文章是因为我遇到了类似的问题,但是在运行 PySpark DataFrame 而不是 Pandas 时。

万一有人像我一样来到这里,我将解释我是如何为 PySpark DataFrame 修复它的。

我收到错误(built-in method of Row object在我的情况下)的原因是因为我的字段名称count与从 python 元组继承的方法计数冲突(如此处所示

解决方案只是将字段名称更改为类似的名称,my_count并且效果很好。

于 2017-06-06T23:28:10.080 回答