diff --git a/src/numpy_pandas/dataframe_operations.py b/src/numpy_pandas/dataframe_operations.py index cb4cda2..174996a 100644 --- a/src/numpy_pandas/dataframe_operations.py +++ b/src/numpy_pandas/dataframe_operations.py @@ -66,14 +66,17 @@ def pivot_table( def agg_func(values): return sum(values) / len(values) + elif aggfunc == "sum": def agg_func(values): return sum(values) + elif aggfunc == "count": def agg_func(values): return len(values) + else: raise ValueError(f"Unsupported aggregation function: {aggfunc}") grouped_data = {} @@ -106,9 +109,9 @@ def apply_function(df: pd.DataFrame, column: str, func: Callable) -> List[Any]: def fillna(df: pd.DataFrame, column: str, value: Any) -> pd.DataFrame: result = df.copy() - for i in range(len(df)): - if pd.isna(df.iloc[i][column]): - result.iloc[i, df.columns.get_loc(column)] = value + # Replace NA values in the specified column using efficient vectorized operation + mask = result[column].isna() + result.loc[mask, column] = value return result