Notes de version de la bibliothèque Snowpark pour Python pour 2025

Cet article contient les notes de version Snowpark Library for Python, y compris les éléments suivants, le cas échéant :

  • Changements de comportement

  • Nouvelles fonctionnalités

  • Corrections de bogues pour les clients

Snowflake utilise la version sémantique pour les mises à jour Snowpark Library for Python.

Voir Guide du développeur Snowpark pour Python pour la documentation.

Avertissement

Python 3.8 ayant atteint sa fin de vie, des avertissements d’obsolescence seront déclenchés lors de l’utilisation de snowpark-python avec Python 3.8. Pour plus de détails, voir Prise en charge de l’environnement d’exécution Snowflake Python. Snowpark Python 1.24.0 sera la dernière version du client et du serveur à prendre en charge Python 3.8, conformément à la politique Anaconda. Mettez à niveau vos objets Python 3.8 existants à la version Python 3.9 ou une version plus récente.

Version 1.32.0 (2025-05-15)

Améliorations

  • L’invocation des procédures du système Snowflake n’entraîne pas d’appel supplémentaire à describe procedure pour vérifier le type de retour de la procédure.

  • Ajout de la prise en charge de Session.create_dataframe() avec l’URL de la zone de préparation et le type de données FILE.

  • Prise en charge de différents modes de traitement des enregistrements XML corrompus lors de la lecture d’un fichier XML à l’aide de session.read.option('mode', <mode>), option('rowTag', <tag_name>).xml(<stage_file_path>). Actuellement, PERMISSIVE, DROPMALFORMED et FAILFAST sont pris en charge.

  • Amélioration du message d’erreur du lecteur XML lorsque ROWTAG spécifié n’est pas trouvé dans le fichier.

  • Amélioration de la génération de requêtes pour Dataframe.drop afin d’utiliser SELECT * EXCLUDE () pour exclure les colonnes supprimées. Pour activer cette fonction, définissez session.conf.set("use_simplified_query_generation", True).

  • Ajout de la prise en charge de VariantType à StructType.from_json.

Corrections de bogues

  • Correction d’un bogue dans DataFrameWriter.dbapi (Aperçu privé) où les noms de colonnes unicode ou entre guillemets doubles dans les bases de données externes provoquent des erreurs parce qu’ils ne sont pas cités correctement.

  • Correction d’un bogue où les champs nommés dans les données imbriquées de OBJECT pouvaient provoquer des erreurs lorsqu’ils contenaient des espaces.

Mises à jour des tests locaux Snowpark

Corrections de bogues

  • Correction d’un bogue dans snowflake.snowpark.functions.rank qui ne respectait pas le sens du tri.

  • Correction d’un bogue dans snowflake.snowpark.functions.to_timestamp_* qui provoquait des résultats incorrects sur les données filtrées.

Mises à jour de l’API pandas Snowpark

Nouvelles fonctionnalités

  • Prise en charge des valeurs dict dans Series.str.get, Series.str.slice et Series.str.__getitem__ (Series.str[...]).

  • Ajout de la prise en charge de DataFrame.to_html.

  • Prise en charge de DataFrame.to_string et Series.to_string.

  • Ajout de la prise en charge de la lecture de fichiers à partir de compartiments S3 à l’aide de pd.read_csv.

Améliorations

  • Faites de iceberg_config un paramètre obligatoire pour DataFrame.to_iceberg et Series.to_iceberg.

Version 1.31.0 (2025-04-24)

Nouvelles fonctionnalités

  • Ajout de la prise en charge de l’autorisation restricted caller de l’argument execute_as dans StoredProcedure.register():code:.

  • Prise en charge des instructions de non-sélection dans DataFrame.to_pandas().

  • La prise en charge du paramètre artifact_repository a été ajoutée à Session.add_packages, Session.add_requirements, Session.get_packages, Session.remove_package et Session.clear_packages.

  • Ajout de la prise en charge de la lecture d’un fichier XML à l’aide d’une balise de ligne par session.read.option('rowTag', <tag_name>).xml(<stage_file_path>) (expérimental).

    • Chaque enregistrement XML est extrait sous la forme d’une ligne distincte.

    • Chaque champ de cet enregistrement devient une colonne distincte de type VARIANT, qui peut faire l’objet d’une requête à l’aide de la notation par points, par exemple col(a.b.c).

  • Ajout de mises à jour sur DataFrameReader.dbapi (PrPr) :

    • Le paramètre fetch_merge_count a été ajouté pour optimiser les performances en fusionnant plusieurs données dans un seul fichier Parquet.

    • Ajout de la prise en charge de Databricks.

    • Ajout de la prise en charge de l’ingestion avec Snowflake UDTF.

  • Ajout de la prise en charge des fonctions suivantes, activées par AI, dans functions.py (Aperçu privé) :

    • prompt

    • ai_filter (ajout de la prise en charge de la fonction prompt() et des fichiers image, et modification du nom du deuxième argument de expr à file)

    • ai_classify

Améliorations

  • Changement de nom du paramètre relaxed_ordering en enforce_ordering pour DataFrame.to_snowpark_pandas. De même, la nouvelle valeur par défaut est enforce_ordering=False, ce qui a l’effet inverse de la valeur par défaut précédente, relaxed_ordering=False.

  • Amélioration des performances de lecture de DataFrameReader.dbapi (PrPr) en définissant la valeur par défaut du paramètre fetch_size sur 1000.

  • Améliorez le message d’erreur pour l’erreur d’identificateur SQL non valide en suggérant les identificateurs potentiellement correspondants.

  • Réduction du nombre de requêtes de description émises lors de la création d’un DataFrame à partir d’une table Snowflake à l’aide de session.table.

  • Amélioration des performances et de la précision de DataFrameAnalyticsFunctions.time_series_agg().

Corrections de bogues

  • Correction d’un bogue dans DataFrame.group_by().pivot().agg lorsque la colonne pivot et la colonne agrégée sont identiques.

  • Correction d’un bogue dans DataFrameReader.dbapi (PrPr) où une erreur TypeError était soulevée lorsque create_connection renvoyait un objet de connexion d’un type de pilote non pris en charge.

  • Correction d’un bogue où l’appel à df.limit(0) ne s’appliquait pas correctement.

  • Correction d’un bogue dans DataFrameWriter.save_as_table qui provoquait des erreurs dans les noms réservés lors de l’utilisation du mode append.

Dépréciations

  • Prise en charge obsolète de Python3.8.

  • Argument déprécié sliding_interval dans DataFrameAnalyticsFunctions.time_series_agg().

Mises à jour des tests locaux Snowpark

Nouvelles fonctionnalités

  • Ajout de la prise en charge de l’expression Interval à Window.range_between.

  • Ajout de la prise en charge de la fonction array_construct.

Corrections de bogues

  • Correction d’un bogue dans les tests locaux où le répertoire transitoire __pycache__ était copié involontairement pendant l’exécution de la procédure stockée via l’importation.

  • Correction d’un bogue dans les tests locaux qui créait des résultats incorrects pour les appels à Column.like.

  • Correction d’un bogue dans les tests locaux qui faisait que Column.getItem et snowpark.snowflake.functions.get renvoyaient IndexError au lieu de null.

  • Correction d’un bogue dans les tests locaux où l’appel à df.limit(0) ne s’appliquait pas correctement.

  • Correction d’un bogue dans les tests locaux où un Table.merge dans une table vide provoquait une exception.

Mises à jour de l’API pandas Snowpark

Mises à jour des dépendances

  • Mise à jour de modin de 0.30.1 à 0.32.0.

  • Ajout de la prise en charge de numpy 2.0 et plus.

Nouvelles fonctionnalités

  • Prise en charge de DataFrame.create_or_replace_view et Series.create_or_replace_view.

  • Prise en charge de DataFrame.create_or_replace_dynamic_table et Series.create_or_replace_dynamic_table.

  • Prise en charge de DataFrame.to_view et Series.to_view.

  • Prise en charge de DataFrame.to_dynamic_table et Series.to_dynamic_table.

  • Ajout de la prise en charge de DataFrame.groupby.resample pour les agrégations max, mean, median, min et sum.

  • Ajout de la prise en charge de la lecture des fichiers de zone de préparation avec :

    • pd.read_excel

    • pd.read_html

    • pd.read_pickle

    • pd.read_sas

    • pd.read_xml

  • Prise en charge de DataFrame.to_iceberg et Series.to_iceberg.

  • Prise en charge des valeurs dict dans Series.str.len.

Améliorations

  • Améliorez les performances de DataFrame.groupby.apply et Series.groupby.apply en évitant les étapes de pivot coûteuses.

  • Ajout d’une estimation de la limite supérieure du nombre de lignes à OrderedDataFrame pour permettre un meilleur changement de moteur. Il pourrait en résulter une augmentation du nombre de requêtes.

  • Changement de nom du paramètre relaxed_ordering en enforce_ordering avec pd.read_snowflake. En outre, la nouvelle valeur par défaut est enforce_ordering=False, ce qui a l’effet inverse de la valeur par défaut précédente, relaxed_ordering=False.

Corrections de bogues

  • Correction d’un bogue pour pd.read_snowflake lors de la lecture des tables d’icebergs et enforce_ordering=True.

Version 1.30.0 (2025-03-27)

Nouvelles fonctionnalités

  • Prise en charge des garanties de cohérence et d’ordre relâchées dans Dataframe.to_snowpark_pandas en introduisant le paramètre relaxed_ordering.

  • DataFrameReader.dbapi (aperçu) accepte désormais une liste de chaînes pour le paramètre session_init_statement, ce qui permet d’exécuter plusieurs instructions SQL lors de l’initialisation de la session.

Améliorations

  • Amélioration de la génération de requêtes pour Dataframe.stat.sample_by afin de générer une seule requête plate qui s’adapte bien à un large dictionnaire fractions par rapport à l’ancienne méthode qui consistait à créer une sous-requête UNION ALL pour chaque clé dans fractions. Pour activer cette fonction, définissez session.conf.set("use_simplified_query_generation", True).

  • Amélioration des performances de DataFrameReader.dbapi en activant l’option vectorisée lors de la copie d’un fichier parquet dans une table.

  • La génération de requêtes pour DataFrame.random_split a été améliorée de la manière suivante. Elles peuvent être activées en définissant session.conf.set("use_simplified_query_generation", True) :

    • Suppression de la nécessité de cache_result dans l’implémentation interne de l’image de données d’entrée, ce qui permet une opération d’image de données paresseuse.

    • L’argument seed se comporte désormais comme prévu, avec des résultats reproductibles sur plusieurs appels et sessions.

  • DataFrame.fillna et DataFrame.replace permettent désormais de faire rentrer int et float dans les colonnes de Decimal si include_decimal est défini sur True.

  • Ajout de la documentation pour les UDF et les fonctions de procédure stockée suivantes dans files.py suite à leur disponibilité générale.

    • SnowflakeFile.write

    • SnowflakeFile.writelines

    • SnowflakeFile.writeable

  • Changements mineurs dans la documentation pour SnowflakeFile et SnowflakeFile.open().

Corrections de bogues

  • Correction d’un bogue pour les fonctions suivantes qui soulevaient des erreurs. .cast() est appliqué à leur sortie :

    • from_json

    • size

Mises à jour des tests locaux Snowpark

Corrections de bogues

  • Correction d’un bogue dans l’agrégation qui faisait que des groupes vides produisaient encore des lignes.

  • Correction d’un bogue dans Dataframe.except_ qui provoquait la suppression incorrecte des lignes.

  • Correction d’un bogue qui provoquait l’échec de to_timestamp lors de la conversion de colonnes filtrées.

Mises à jour de l’API pandas Snowpark

Nouvelles fonctionnalités

  • Ajout de la prise en charge des valeurs de liste dans Series.str.__getitem__ (Series.str[...]).

  • Ajout de la prise en charge des objets pd.Grouper dans les opérations GROUP BY. Lorsque freq est spécifié, les valeurs par défaut des arguments sort, closed, label et convention sont prises en charge ; origin est pris en charge lorsqu’il s’agit de start ou start_day.

  • Prise en charge des garanties de cohérence et d’ordre relâchées dans pd.read_snowflake pour les sources de données nommées (par exemple, les tables et les vues) et les sources de données des requêtes, grâce à l’introduction du nouveau paramètre relaxed_ordering.

Améliorations

  • Émission d’un avertissement lorsque QUOTED_IDENTIFIERS_IGNORE_CASE est défini, demander à l’utilisateur de le désactiver.

  • Amélioration de la manière dont un index_label manquant dans DataFrame.to_snowflake et Series.to_snowflake est traité lorsque index=True. Au lieu d’afficher ValueError, des étiquettes définies par le système sont utilisées pour les colonnes d’index.

  • Amélioration du message d’erreur pour groupby, DataFrame ou Series.agg lorsque le nom de la fonction n’est pas pris en charge.

Mises à jour des tests locaux Snowpark

Améliorations

  • Émission d’un avertissement lorsque QUOTED_IDENTIFIERS_IGNORE_CASE est défini, demander à l’utilisateur de le désactiver.

  • Amélioration de la manière dont un index_label manquant dans DataFrame.to_snowflake et Series.to_snowflake est traité lorsque index=True. Au lieu d’afficher ValueError, des étiquettes définies par le système sont utilisées pour les colonnes d’index.

  • Amélioration du message d’erreur pour groupby or DataFrame or Series.agg lorsque le nom de la fonction n’est pas pris en charge.

Version 1.29.1 (2025-03-12)

Corrections de bogues

  • Correction d’un bogue dans DataFrameReader.dbapi (aperçu privé) qui empêche l’utilisation dans les procédures stockées et les Snowbooks.

Version 1.29.0 (2025-03-05)

Nouvelles fonctionnalités

  • Ajout de la prise en charge des fonctions suivantes, activées par AI, dans functions.py (Aperçu privé) :

    • ai_filter

    • ai_agg

    • summarize_agg

  • Ajout de la prise en charge du nouveau type FILE SQL, avec les fonctions connexes suivantes dans functions.py (Aperçu privé) :

    • fl_get_content_type

    • fl_get_etag

    • fl_get_file_type

    • fl_get_last_modified

    • fl_get_relative_path

    • fl_get_scoped_file_url

    • fl_get_size

    • fl_get_stage

    • fl_get_stage_file_url

    • fl_is_audio

    • fl_is_compressed

    • fl_is_document

    • fl_is_image

    • fl_is_video

  • Ajout de la prise en charge de l’importation de paquets tiers depuis PyPi avec Artifact Repository (Aperçu privé) :

    • Utilisez les arguments de mot-clé artifact_repository et artifact_repository_packages pour spécifier respectivement votre référentiel d’artefacts et vos paquets lors de l’enregistrement de procédures stockées ou de fonctions définies par l’utilisateur.

    • Les APIs prises en charge sont :

      • Session.sproc.register

      • Session.udf.register

      • Session.udaf.register

      • Session.udtf.register

      • functions.sproc

      • functions.udf

      • functions.udaf

      • functions.udtf

      • functions.pandas_udf

      • functions.pandas_udtf

Améliorations

  • Amélioration des avertissements de validation de version pour la compatibilité avec le paquet snowflake-snowpark-python lors de l’enregistrement des procédures stockées. Désormais, les avertissements ne sont déclenchés que si la version majeure ou mineure ne correspond pas, tandis que les différences de version ne génèrent plus d’avertissements.

  • Augmentation de la dépendance de cloudpickle pour prendre en charge cloudpickle==3.0.0 en plus des versions précédentes.

Corrections de bogues

  • Correction d’un bogue où la création d’un Dataframe avec un grand nombre de valeurs soulevait l’erreur Unsupported feature 'SCOPED_TEMPORARY'. si la session thread-safe était désactivée.

  • Correction d’un bogue à cause duquel df.describe soulevait une erreur d’exécution interne de SQL lorsque DataFrame était créé à partir de la lecture d’un fichier de zone de préparation et que l’optimisation de CTE était activée.

  • Correction d’un bogue à cause duquel df.order_by(A).select(B).distinct() générait des SQL invalides lorsque la génération de requêtes simplifiées était activée à l’aide de session.conf.set("use_simplified_query_generation", True).

    • La génération de requêtes simplifiées est désactivée par défaut.

Mises à jour de l’API pandas Snowpark

Améliorations

  • Amélioration du message d’erreur pour pd.to_snowflake, DataFrame.to_snowflake et Series.to_snowflake lorsque la table n’existe pas.

  • Améliorez la lisibilité de docstring pour le paramètre if_exists dans pd.to_snowflake, DataFrame.to_snowflake et Series.to_snowflake.

  • Amélioration du message d’erreur pour toutes les fonctions pandas qui utilisent des UDFs avec des objets Snowpark.

Corrections de bogues

  • Correction d’un bogue dans Series.rename_axis où un AttributeError était soulevé.

  • Correction d’un bogue à cause duquel pd.get_dummies n’ignorait pas les valeurs NULL/NaN par défaut.

  • Correction d’un bogue où des appels répétés à pd.get_dummies entraînaient une « erreur de nom de colonne dupliqué ».

  • Correction d’un bogue dans pd.get_dummies où le passage d’une liste de colonnes générait des annonces de colonnes incorrectes dans la sortie DataFrame.

  • Mise à jour de pd.get_dummies pour renvoyer des valeurs bool au lieu de int.

Mises à jour des tests locaux Snowpark

Nouvelles fonctionnalités

  • Ajout de la prise en charge des valeurs littérales dans la fonction de fenêtre range_between.

Version 1.28.0 (2025-02-20)

Nouvelles fonctionnalités

  • Ajout de la prise en charge des fonctions suivantes dans functions.py

    • normal

    • randn

  • Ajout de la prise en charge du paramètre allow_missing_columns à Dataframe.union_by_name et Dataframe.union_all_by_name.

Améliorations

  • Amélioration de la génération de noms d’objets aléatoires pour éviter les collisions.

  • Amélioration de la génération de requêtes pour Dataframe.distinct afin de générer SELECT DISTINCT au lieu de SELECT avec GROUP BY toutes les colonnes. Pour désactiver cette fonction, définissez session.conf.set("use_simplified_query_generation", False).

Dépréciations

  • Fonction Snowpark Python obsolète snowflake_cortex_summarize. Les utilisateurs peuvent installer snowflake-ml-python et utiliser la fonction snowflake.cortex.summarize à la place.

  • Fonction Snowpark Python obsolète snowflake_cortex_sentiment. Les utilisateurs peuvent installer snowflake-ml-python et utiliser la fonction snowflake.cortex.sentiment à la place.

Corrections de bogues

  • Correction d’un bogue où la balise de requête au niveau de la session était remplacée par une trace de pile pour DataFrames qui génère plusieurs requêtes. Désormais, la balise de requête ne sera définie avec la trace de pile que si session.conf.set("collect_stacktrace_in_query_tag", True).

  • Correction d’un bogue dans Session._write_pandas qui passait par erreur le paramètre use_logical_type à Session._write_modin_pandas_helper lors de l’écriture d’un objet pandas Snowpark.

  • Correction d’un bogue dans la génération des options SQL qui pouvait entraîner un formatage incorrect des valeurs multiples.

  • Correction d’un bogue dans Session.catalog où les chaînes vides pour la base de données ou le schéma n’étaient pas gérées correctement et généraient des instructions SQL erronées.

Fonctions expérimentales

  • Ajout de la prise en charge pour l’écriture de tables pyarrow vers des tables Snowflake.

Mises à jour de l’API pandas Snowpark

Nouvelles fonctionnalités

  • Ajout de la prise en charge pour appliquer les fonctions Snowflake Cortex Summarize et Sentiment.

  • Ajout de la prise en charge des valeurs de liste dans Series.str.get.

Corrections de bogues

  • Correction d’un bogue dans apply où les kwargs n’étaient pas correctement passés dans la fonction appliquée.

Mises à jour des tests locaux Snowpark

Nouvelles fonctionnalités

  • Ajout de la prise en charge des fonctions suivantes
    • hour

    • minute

  • Ajout de la prise en charge du paramètre NULL_IF par le lecteur CSV.

  • Ajout de la prise en charge des options date_format, datetime_format et timestamp_format lors du chargement de CSVs.

Corrections de bogues

  • Correction d’un bogue dans DataFrame.join qui provoquait une mauvaise saisie des colonnes.

  • Correction d’un bogue dans les instructions when qui entraînait des résultats incorrects dans la clause otherwise.

Version 1.27.0 (2025-02-05)

Nouvelles fonctionnalités

Ajout de la prise en charge des fonctions suivantes dans functions.py :

  • array_reverse

  • divnull

  • map_cat

  • map_contains_key

  • map_keys

  • nullifzero

  • snowflake_cortex_sentiment

  • acosh

  • asinh

  • atanh

  • bit_length

  • bitmap_bit_position

  • bitmap_bucket_number

  • bitmap_construct_agg

  • cbrt

  • equal_null

  • from_json

  • ifnull

  • localtimestamp

  • max_by

  • min_by

  • nth_value

  • nvl

  • octet_length

  • position

  • regr_avgx

  • regr_avgy

  • regr_count

  • regr_intercept

  • regr_r2

  • regr_slope

  • regr_sxx

  • regr_sxy

  • regr_syy

  • try_to_binary

  • base64

  • base64_decode_string

  • base64_encode

  • editdistance

  • hex

  • hex_encode

  • instr

  • log1p

  • log2

  • log10

  • percentile_approx

  • unbase64

  • Ajout de la prise en charge de la spécification d’une chaîne de schéma (y compris la syntaxe struct implicite) lors de l’appel de DataFrame.create_dataframe.

  • Ajout de la prise en charge de DataFrameWriter.insert_into/insertInto. Cette méthode prend également en charge le mode de test local.

  • Ajout de la prise en charge de DataFrame.create_temp_view pour créer une vue temporaire. L’opération échouera si la vue existe déjà.

  • Ajout de la prise en charge de plusieurs colonnes dans les fonctions map_cat et map_concat.

  • Ajout d’une option keep_column_order pour conserver l’ordre original des colonnes dans DataFrame.with_column et DataFrame.with_columns.

  • Ajout d’options aux conversions de colonnes qui permettent de renommer ou d’ajouter des champs dans les colonnes StructType.

  • Ajout de la prise en charge de contains_null parameter à ArrayType.

  • Ajout de la prise en charge de la création d’une vue temporaire via DataFrame.create_or_replace_temp_view à partir d’un DataFrame créé par la lecture d’un fichier depuis une zone de préparation.

  • Ajout de la prise en charge du paramètre value_contains_null à MapType.

  • Ajout d”« interactif » à la télémétrie qui indique si l’environnement actuel est interactif.

  • Autorisation de session.file.get dans une Native App à lire les chemins d’accès aux fichiers commençant par / à partir de la version actuelle.

  • Ajout de la prise en charge de plusieurs fonctions d’agrégation après DataFrame.pivot.

Fonctions expérimentales

  • Ajout de la classe Session.catalog pour la gestion des objets Snowflake. Vous pouvez y accéder via Session.catalog.

    • snowflake.core est une dépendance nécessaire à cette fonction.

  • Autoriser les schémas d’entrée de l’utilisateur ou les schémas d’entrée de l’utilisateur lors de la lecture du fichier JSON sur la zone de préparation.

  • Ajout de la prise en charge de la spécification d’une chaîne de schéma (y compris la syntaxe struct implicite) lors de l’appel de DataFrame.create_dataframe.

Améliorations

  • Mise à jour de README.md de sorte à inclure des instructions sur la façon de vérifier les signatures des paquets à l’aide de cosign.

Corrections de bogues

  • Correction d’un bogue dans le mode de test local qui faisait qu’une colonne contenait None alors qu’elle aurait dû contenir 0.

  • Correction d’un bogue dans StructField.from_json qui empêchait l’analyse correcte de TimestampTypes avec tzinfo.

  • Correction d’un bogue dans function date_format qui provoquait une erreur lorsque la colonne d’entrée était de type date ou horodatage.

  • Correction d’un bogue dans DataFrame qui permettait d’insérer des valeurs nulles dans une colonne non annulable.

  • Correction d’un bogue dans les fonctions replace et lit qui provoquait une erreur d’assertion d’indication de type lors du passage d’objets d’expression de colonne.

  • Correction d’un bogue dans pandas_udf et pandas_udtf où les paramètres de session étaient ignorés par erreur.

  • Correction d’un bogue qui provoquait une erreur de conversion de type pour les fonctions du système appelées par l’intermédiaire de session.call.

Mises à jour de l’API pandas Snowpark

Nouvelles fonctionnalités

  • Prise en charge de Series.str.ljust et Series.str.rjust.

  • Ajout de la prise en charge de Series.str.center.

  • Ajout de la prise en charge de Series.str.pad.

  • Ajout de la prise en charge de l’application de la fonction Snowpark Python snowflake_cortex_sentiment.

  • Ajout de la prise en charge de DataFrame.map.

  • Prise en charge de DataFrame.from_dict et DataFrame.from_records.

  • Ajout de la prise en charge des noms de champ en casse mixte dans les colonnes de type struct.

  • Ajout de la prise en charge de SeriesGroupBy.unique.

  • Ajout de la prise en charge de Series.dt.strftime avec les directives suivantes :

    • %d : jour du mois sous forme de nombre décimal complété par des zéros.

    • %m : mois sous forme de nombre décimal complété par des zéros.

    • %Y : année avec le siècle sous forme de nombre décimal.

    • %H : heure (horloge de 24 heures) sous forme de nombre décimal complété par des zéros.

    • %M : minute sous forme de nombre décimal complété par des zéros.

    • %S : seconde sous forme de nombre décimal complété par des zéros.

    • %f : microseconde sous forme de nombre décimal complété par des zéros jusqu’à 6 chiffres.

    • %j : jour de l’année sous forme de nombre décimal complété par des zéros.

    • %X : représentation appropriée du temps conformément aux paramètres régionaux.

    • %% : caractère « % » littéral.

  • Ajout de la prise en charge de Series.between.

  • Ajout de la prise en charge de include_groups=False dans DataFrameGroupBy.apply.

  • Ajout de la prise en charge de expand=True dans Series.str.split.

  • Prise en charge de DataFrame.pop et Series.pop.

  • Prise en charge de first et last dans DataFrameGroupBy.agg et SeriesGroupBy.agg.

  • Ajout de la prise en charge de Index.drop_duplicates.

  • Ajout de la prise en charge des agrégations "count", "median", np.median, "skew", "std", np.std "var" et np.var dans pd.pivot_table(), DataFrame.pivot_table() et pd.crosstab().

Améliorations

  • Amélioration des performances des méthodes DataFrame.map, Series.apply et Series.map en mappant les fonctions numpy avec les fonctions Snowpark si possible.

  • Ajout de documentation pour DataFrame.map.

  • Amélioration des performances de DataFrame.apply en mappant les fonctions numpy avec les fonctions Snowpark si possible.

  • Ajout d’une documentation sur l’étendue de l’interopérabilité de Snowpark pandas avec scikit-learn.

  • Inférence du type de renvoi des fonctions dans Series.map, Series.apply et DataFrame.map si l’indice de type n’est pas fourni.

  • Ajout de call_count à la télémétrie qui compte les appels de méthode, y compris les appels de protocole d’échange.