pythonadvanced
Custom Pandas Accessor Extension
Create a reusable @pd.api.extensions.register_dataframe_accessor for domain-specific DataFrame methods.
pythonPress ⌘/Ctrl + Shift + C to copy
import pandas as pd
@pd.api.extensions.register_dataframe_accessor('finance')
class FinanceAccessor:
def __init__(self, df: pd.DataFrame):
self._validate(df)
self._df = df
@staticmethod
def _validate(df):
if 'price' not in df.columns or 'qty' not in df.columns:
raise AttributeError("DataFrame must have 'price' and 'qty' columns")
def revenue(self) -> pd.Series:
return self._df['price'] * self._df['qty']
def summary(self) -> pd.DataFrame:
return self._df.assign(revenue=self.revenue()).describe()
df = pd.DataFrame({'price':[10.0,20.0,30.0],'qty':[3,1,5]})
print(df.finance.revenue())
print(df.finance.summary())Use Cases
- domain-specific pandas
- reusable extensions
- data science frameworks
Tags
Related Snippets
Similar patterns you can reuse in the same workflow.
pythonbeginner
Pandas DataFrame Transformations
Common pandas DataFrame transformations including column operations, type casting, and string methods.
Best for: Cleaning raw data files for analysis
#pandas#dataframe
pythonbeginner
Pandas DataFrame Filtering Techniques
Filter DataFrames using boolean masks, query syntax, isin, between, and string matching methods.
Best for: Extracting subsets of data for reporting
#pandas#filtering
pythonintermediate
Pandas GroupBy Aggregation Examples
GroupBy operations with multiple aggregations, named aggregations, and transform for DataFrame analysis.
Best for: Sales reporting by region and time period
#pandas#groupby
pythonintermediate
Pandas Merge and Join Examples
Combine DataFrames using merge, join, and concat with different join types and key handling.
Best for: Combining data from multiple sources
#pandas#merge