Pourquoi les pandas font-ils une distinction entre une Series
et une colonne unique DataFrame
?
En d'autres termes: quelle est la raison d'existence de la Series
classe?
J'utilise principalement des séries chronologiques avec un index datetime, cela aide peut-être à définir le contexte.
DataFrame
à undict
deSeries
(bien que ce ne soit pas l'implémentation actuelle), on ne sait toujours pas pourquoi vous retourneriez unSeries
objet au lieu d'unDataFrame
(c'est-à-dire conceptuellement undict
avec une entrée).Réponses:
Citant les documents Pandas
Ainsi, la série est la structure de données pour une seule colonne de a
DataFrame
, non seulement conceptuellement, mais littéralement, c'est-à-dire que les données de aDataFrame
sont en fait stockées en mémoire en tant que collection deSeries
.De manière analogue: nous avons besoin à la fois de listes et de matrices, car les matrices sont construites avec des listes. Les matricies à une seule ligne, bien qu'équivalentes aux listes en fonctionnalité, ne peuvent toujours pas exister sans la ou les listes dont elles sont composées.
Ils ont tous les deux des API extrêmement similaires, mais vous constaterez que les
DataFrame
méthodes tiennent toujours compte de la possibilité que vous ayez plus d'une colonne. Et, bien sûr, vous pouvez toujours ajouter un autreSeries
(ou un objet équivalent) à unDataFrame
, tandis que l'ajout d'unSeries
à un autreSeries
implique la création d'un fichierDataFrame
.la source
__repr__
comportement différent , de sorte que vous ne pouvez pas les mélanger?DataFrame
fromCan be thought of as a dict-like container for Series objects
. En fait, il est actuellement stocké en tant queBlockManager
(ce qui est un détail d'implémentation sur lequel vous ne devriez pas vous fier).extrait du document pandas http://pandas.pydata.org/pandas-docs/stable/dsintro.html Series est un tableau étiqueté unidimensionnel capable de contenir n'importe quel type de données. Pour lire les données sous forme de série panda:
DataFrame est une structure de données étiquetée en 2 dimensions avec des colonnes de types potentiellement différents.
Dans les deux index ci-dessus se trouve la liste
par exemple: j'ai un fichier csv avec les données suivantes:
Pour lire les données ci-dessus sous forme de série et de bloc de données:
production:
production:
la source
file_data
enbrics
, ajouter une ligne US au csv et changer['BR'....'US']
enbrics.index
. Peut-être correctpupuplation
.La série est un objet unidimensionnel qui peut contenir n'importe quel type de données tel que des entiers, des flottants et des chaînes, par exemple
La première colonne de Series est connue sous le nom d'index, c'est-à-dire 0,1,2 la deuxième colonne correspond à vos données réelles, c'est-à-dire A, B, C
DataFrames est un objet bidimensionnel pouvant contenir des séries, des listes, des dictionnaires
la source
Series est un tableau étiqueté unidimensionnel capable de contenir n'importe quel type de données (entiers, chaînes, nombres à virgule flottante, objets Python, etc.). Les étiquettes des axes sont collectivement appelées index. La méthode de base pour créer une série est d'appeler:
DataFrame est une structure de données étiquetée en 2 dimensions avec des colonnes de types potentiellement différents. Vous pouvez le considérer comme une feuille de calcul ou une table SQL, ou un dict d'objets Series.
la source
Importer les données des voitures
Voici à quoi ressemble le fichier cars.csv.
Imprimez la colonne drives_right comme Series:
La version à support simple donne une série Pandas, la version à support double donne un Pandas DataFrame.
Imprimer la colonne drives_right en tant que DataFrame
L'ajout d'une série à une autre série crée un DataFrame.
la source