pandas.api.extensions.register_series_accessor#
- pandas.api.extensions.register_series_accessor(name)[源代码][源代码]#
在 Series 对象上注册一个自定义访问器。
- 参数:
- 名字str
访问器应注册的名称。如果此名称与预先存在的属性冲突,则会发出警告。
- 返回:
- callable
一个类装饰器。
参见
register_dataframe_accessor
在 DataFrame 对象上注册一个自定义访问器。
register_series_accessor
在 Series 对象上注册一个自定义访问器。
register_index_accessor
在索引对象上注册一个自定义访问器。
备注
此函数允许您为 Series 注册一个自定义的访问器类。访问器类的要求如下:
必须包含一个初始化方法,该方法:
接受一个单一的 Series 对象
如果 Series 对象没有正确匹配的访问器输入,则会引发 AttributeError
必须包含每个访问模式的方法。
这些方法应该能够接受任何参数签名。
如果没有额外的参数需要,可以使用 @property 装饰器来访问。
示例
一个只接受整数的访问器可以定义这样的类:
>>> @pd.api.extensions.register_series_accessor("int_accessor") ... class IntAccessor: ... def __init__(self, pandas_obj): ... if not pandas_obj.dtype == 'int64': ... raise AttributeError("The series must contain integer data only") ... self._obj = pandas_obj ... ... def sum(self): ... return self._obj.sum() ... >>> df = pd.Series([1, 2, 'x']) >>> df.int_accessor Traceback (most recent call last): ... AttributeError: The series must contain integer data only. >>> df = pd.Series([1, 2, 3]) >>> df.int_accessor.sum() 6