根据Pandas docs,可以注册如下自定义访问器:
@pd.api.extensions.register_dataframe_accessor("geo")
class GeoAccessor:
def __init__(self, pandas_obj):
self._validate(pandas_obj)
self._obj = pandas_obj
@property
def center(self):
lat = self._obj.latitude
lon = self._obj.longitude
return (float(lon.mean()), float(lat.mean()))
def method(self):
# do something
假设有多个具有不同名称空间的访问器。例如:
- 地球2号
- 地理3
例如,如果我们想从geo
调用一个方法,我们可以这样做:
df.geo.method() # here we use geo explicitly
我如何将名称空间存储到变量中或从变量中检索名称空间?
我的想法沿着:
df.variable_namespace.method() # variable_namespace could be geo, geo2 etc..
如果我们希望就名称空间而言具有动态行为,该怎么办?
1条答案
按热度按时间x4shl7ld1#
让我们考虑一个变量负责存储一个命名空间,如下所示:
然后,可以实现动态行为: