web-dev-qa-db-fra.com

Pandas: qu'est-ce qu'un objet NDFrame (et qu'est-ce qu'un objet non NDFrame)

J'essaie de concaténer deux DataFrames et j'obtiens un 'TypeError: cannot concatenate a non-NDFrame object' Erreur. J'ai regardé autour de moi, il y a beaucoup de gens qui obtiennent cette erreur, la plupart du temps quand ils essaient de faire autre chose que ce que fait réellement leur code, (donc les réponses résolvent leurs questions particulières mais sans rapport)

Ma question n'est pas de résoudre mon problème particulier, mais de comprendre l'erreur ... Qu'est-ce qu'un objet non NDFrame? Pourquoi ne peut-il pas être concaténé?

Aussi, pourquoi s'agit-il de NDFrames (Que sont-ils et où dois-je les utiliser? Tous les DataFrames sont-ils NDFrames? Y a-t-il des NDFrames qui ne sont pas des DataFrames?) ...

Je comprendrais si ça disait 'TypeError: cannot concatenate a non-DataFrame object' (même si je ne suis pas sûr que ce ne soit pas DataFrames qui soit la cause de mon erreur) C'est principalement ma quête de curiosité, je n'essaie pas de chasser un bug spécifique ...

13
ntg

De la bouche du cheval:

Analogue à N dimensions de DataFrame. Stockez plusieurs dimensions dans une structure de données étiquetée à taille variable

Alors qu'est-ce qu'un DataFrame?

classe DataFrame (NDFrame): structure de données tabulaire bidimensionnelle à taille variable, potentiellement hétérogène avec des axes étiquetés (lignes et colonnes). Les opérations arithmétiques s'alignent sur les étiquettes de ligne et de colonne. Peut être considéré comme un conteneur de type dict pour les objets de la série.

Comme vous pouvez le voir, un DataFrame est une sous-classe (c'est-à-dire un cas spécial) de NDFrame. Dans les programmes Pandas en général, DataFrame est beaucoup utilisé et NDFrame est rarement utilisé. En fait, Pandas a des séries pour 1D, DataFrame pour 2D et pour la plupart) les gens c'est la fin, même si la moitié du nom de Pandas est pour Panel qui Pandas a aussi , mais la plupart des gens n'utilisent pas.

Il y a/était même une chose 4D dans Pandas, mais vraiment personne ne l'utilise (ceci étant Internet, quelqu'un va maintenant sembler le dire!). Pour des dimensions supérieures à deux ou peut-être trois, certaines personnes ont déplacé leurs efforts vers xarray . C'est probablement là que se situe si vos ambitions ne peuvent pas être contenues en 2D.

16
John Zwinck