PNDSPY1126¶
Message Pandas < pandas.core.groupby.groupby.GroupBy.apply > has a partial mapping with a few scenarios not supported in Snowpark.
Category Warning
Description¶
This issue appears when the SMA detects the use of a pandas element that has a direct equivalent in Snowpark pandas, but some scenarios might behave differently than pandas.
Missing or Unsupported Parameters: axis other than 0 is not implemented.
Reason: Y if the following are true, otherwise N: - func is a callable that always returns either a pandas DataFrame, a pandas Series, or objects that are neither DataFrame nor Series. - grouping on axis=0 - Not applying transform to a dataframe with a non-unique index - Not applying func that returns two dataframes that have different labels for the column at a given position - Not applying func that returns two dataframes that have different names for a given index label - Not applying func that returns two Series that have different labels for the row at a given position - Not applying func that returns two Series that have different names - Not grouping by an “external” by, i.e. an object that is not a label for a column or level of the dataframe.
Scenario¶
A method with a few scenarios that aren’t supported in Snowpark.
Input¶
The following example shows a method with a few unsupported scenarios in Snowpark.
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar'], 'B': [1, 2, 3, 4]})
grouped = df.groupby('A')
result = grouped.apply()
Output¶
The SMA adds the EWI PNDSPY1126 to the output code to let you know that this element has a few scenarios that aren’t supported in Snowpark.
import snowflake.snowpark.modin.pandas as pd
#EWI: PNDSPY1126 => pandas.core.groupby.groupby.GroupBy.apply has a partial mapping, with few scenarios not supported. Check Snowpark pandas documentation for more detail.
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar'], 'B': [1, 2, 3, 4]})
grouped = df.groupby('A')
result = grouped.apply()
Recommended fix¶
The parameter axis other than 0 is not implemented. is not supported in Snowpark pandas. If your code uses this parameter, consider one of these approaches:
Remove the parameter: If the parameter is not essential for your use case, simply remove it from the function call.
Use default behavior: The function will work with default values for the unsupported parameter.
Post-process with native pandas: If the parameter is critical, collect the result using
.to_pandas()and apply the operation with native pandas:# Convert to native pandas for unsupported parameter result = df.to_pandas().apply(axis other than 0 is not implemented.=value)
NULL/NaN handling difference: Y if the following are true, otherwise N: - func is a callable that always returns either a pandas DataFrame, a pandas Series, or objects that are neither DataFrame nor Series. - grouping on axis=0 - Not applying transform to a dataframe with a non-unique index - Not applying func that returns two dataframes that have different labels for the column at a given position - Not applying func that returns two dataframes that have different names for a given index label - Not applying func that returns two Series that have different labels for the row at a given position - Not applying func that returns two Series that have different names - Not grouping by an “external” by, i.e. an object that is not a label for a column or level of the dataframe.
Snowpark pandas may handle NULL/NaN values differently:
Pre-filter NULL values using
.dropna()or.fillna()before the operationVerify NULL handling behavior with a small sample dataset
Use explicit NULL checks:
df[df['column'].notna()]
Additional recommendations¶
Check the Snowpark pandas documentation to verify which scenarios aren’t supported for that specific element.