[protocol] Clarify the exact meaning of the buffer's dtype (Dtype tuple in get_buffers())

Ouverte
#273 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

@pitrou y travaille déjà.

Depuis le 3/10/2023.

  • #272 par @pitrou — ouverte

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Documentation
Clarté
À clarifier
Activité
À l'abandon
Stack technique
python
Domaine
api, data

Piste de recherche

Commencez par lire le texte du protocole cité dans l’issue et comparez-le à tests/test_column_object.py, en particulier à test_dtype et test_get_buffers dans dataframe-interchange-tests. Déterminez si le dtype associé au buffer doit correspondre à Column.dtype ou peut différer, puis mettez à jour la spécification et les attentes des tests correspondantes une fois le sens établi.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

interchange-protocol

If my assumption is incorrect

Just as a sanity check I checked and pandas/vaex/cuDF/modin all return the type described in Column.dtype for the get_buffers() values. A. TODO I realize for dataframe-interchange-tests is generalise test_dtype and use it in test_get_buffers.

Note that this is actually not correct, depending on how you interpret it. Yes, the buffers' dtype returns a similar type of DType tuple, but it should not necessarily return the same dtype tuple as its Column.dtype does, as the buffer can have a different dtype than the column.

It seems that we all interpreted this wrongly and all implementations got this wrong (or the text about "the data buffer's associated dtype" is wrong), see https://github.com/apache/arrow/issues/37598, https://github.com/pandas-dev/pandas/issues/54781, https://github.com/pola-rs/polars/pull/10787 (and the same for StaticFrame mentioned above, from a quick look).

Originally posted by @jorisvandenbossche in https://github.com/data-apis/dataframe-api/issues/87#issuecomment-1744791104

Langage dominant
Python
Étoiles
106
Forks
22
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de data-apis/dataframe-api

Toutes les issues de data-apis/dataframe-api

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.