PNDSPY1121¶
Message Pandas < pandas.core.groupby.generic.DataFrameGroupBy.transform > 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: SeriesGroupBy.transform is not implemented.
Reason: Y when func is a string or callable. A UDTF is created to run transform on every group via apply. transform has the same limitations as apply except for string func also being valid for transform.
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.transform()
Output¶
The SMA adds the EWI PNDSPY1121 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: PNDSPY1121 => pandas.core.groupby.generic.DataFrameGroupBy.transform 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.transform()
Recommended fix¶
The parameter SeriesGroupBy.transform 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().transform(SeriesGroupBy.transform is not implemented.=value)
Behavioral note: Y when func is a string or callable. A UDTF is created to run transform on every group via apply. transform has the same limitations as apply except for string func also being valid for transform.
This behavior may differ from native pandas. Recommended actions:
Test with a representative sample of your data
Compare results with native pandas if precision is critical
Use
.to_pandas()if exact pandas behavior is required
Additional recommendations¶
Check the Snowpark pandas documentation to verify which scenarios aren’t supported for that specific element.