pandas 0.23 - pandas.api.extensions.register_dataframe_accessor()

pandas.api.extensions.register_dataframe_accessor




pandas

pandas.api.extensions.register_dataframe_accessor

pandas.api.extensions.register_dataframe_accessor(name) [source]

DataFrame ऑब्जेक्ट पर एक कस्टम एक्सेसर रजिस्टर करें।

पैरामीटर:

नाम : str

वह नाम जिसके तहत एक्सेसर पंजीकृत होना चाहिए। यदि यह नाम एक preexisting विशेषता के साथ विरोध करता है, तो एक चेतावनी जारी की जाती है।

टिप्पणियाँ

जब एक्सेस किया जाता है, तो आपके एक्सेसर को उस पांडा ऑब्जेक्ट के साथ इनिशियलाइज़ किया जाएगा, जिसके साथ उपयोगकर्ता बातचीत कर रहा है। तो हस्ताक्षर होना चाहिए

def __init__(self, pandas_object):

पंडों के तरीकों के साथ संगतता के लिए, आपको एक AttributeError उठाना चाहिए, यदि आपके एक्सेसर को दिया गया डेटा गलत है।

>>> pd.Series(['a', 'b']).dt
Traceback (most recent call last):
...
AttributeError: Can only use .dt accessor with datetimelike values

उदाहरण

आपके पुस्तकालय कोड में:

import pandas as pd

@pd.api.extensions.register_dataframe_accessor("geo")
class GeoAccessor(object):
    def __init__(self, pandas_obj):
        self._obj = pandas_obj

    @property
    def center(self):
        # return the geographic center point of this DataFrame
        lat = self._obj.latitude
        lon = self._obj.longitude
        return (float(lon.mean()), float(lat.mean()))

    def plot(self):
        # plot this array's data on a map, e.g., using Cartopy
        pass

एक इंटरैक्टिव IPython सत्र में वापस:

>>> ds = pd.DataFrame({'longitude': np.linspace(0, 10),
...                    'latitude': np.linspace(0, 20)})
>>> ds.geo.center
(5.0, 10.0)
>>> ds.geo.plot()
# plots data on a map