web-dev-qa-db-fra.com

Quelle est la différence entre une série de pandas et un DataFrame à une colonne?

Pourquoi les pandas font-ils une distinction entre une Series et une colonne unique DataFrame?
En d'autres termes: quelle est la raison de l'existence de la classe Series

J'utilise principalement des séries temporelles avec index datetime, cela peut peut-être aider à définir le contexte. 

107
saroele

Citer les docs Pandas

pandas .DataFrame (data = None, index = None, colonnes = None, dtype = None, copy = False)

Structure de données tabulaire bidimensionnelle, potentiellement hétérogène et modifiable en taille, avec axes étiquetés (lignes et colonnes). Les opérations arithmétiques s'alignent sur les étiquettes des lignes et des colonnes. Peut être considéré comme un conteneur de type dict pour les objets Series. La structure de données primaire de pandas

(Soulignez le mien, le fragment de phrase n'est pas le mien)

Ainsi, la série est la structure de données d’une colonne unique de DataFrame, non seulement sur le plan conceptuel, mais littéralement, c’est-à-dire que les données de DataFrame sont en réalité stockées dans la mémoire sous la forme d’une collection de Series

De manière analogue: Nous avons besoin à la fois de listes et de matrices, car les matrices sont construites avec des listes. Les matrices à une seule rangée, bien qu’elles soient équivalentes aux fonctionnalités, ne peuvent toujours pas exister sans les listes qui les composent.

Leurs deux API sont extrêmement similaires, mais vous constaterez que les méthodes DataFrame tiennent toujours compte de la possibilité que vous ayez plusieurs colonnes. Et bien sûr, vous pouvez toujours ajouter une autre Series (ou un objet équivalent) à une DataFrame, tandis que l'ajout d'une Series à une autre Series implique la création d'une DataFrame.

134
PythonNut

à partir des pandas doc http://pandas.pydata.org/pandas-docs/stable/dsintro.html La série est un tableau étiqueté unidimensionnel capable de contenir tout type de données .. données sous forme de panda série:

import pandas as pd
ds = pd.Series(data, index=index)

DataFrame est une structure de données étiquetée en 2 dimensions avec des colonnes de types potentiellement différents.

import pandas as pd
df = pd.DataFrame(data, index=index)

Dans les deux index ci-dessus est la liste

par exemple: j'ai un fichier csv avec les données suivantes:

,country,popuplation,area,capital
BR,Brazil,10210,12015,Brasile
RU,Russia,1025,457,Moscow
IN,India,10458,457787,New Delhi

Pour lire les données ci-dessus sous forme de série et de trame de données:

import pandas as pd
file_data = pd.read_csv("file_path", index_col=0)
d = pd.Series(file_data.country, index=['BR','RU','IN'] or index =  file_data.index)

sortie:

>>> d
BR           Brazil
RU           Russia
IN            India

df = pd.DataFrame(file_data.area, index=['BR','RU','IN'] or index = file_data.index )

sortie: 

>>> df
      area
BR   12015
RU     457
IN  457787
11
Umesh Kaushik

La série est un objet unidimensionnel pouvant contenir tout type de données tel que des entiers, des flottants et des chaînes, par exemple. 

   import pandas as pd </i>
   x = pd.Series([A,B,C]) 

0 A
1 B
2 C

La première colonne de la série est connue, à savoir 0,1,2 La deuxième colonne est constituée de vos données réelles, à savoir A, B, C

DataFrames est un objet bidimensionnel pouvant contenir des séries, des listes et des dictionnaires. 

df=pd.DataFrame(rd(5,4),['A','B','C','D','E'],['W','X','Y','Z'])
1
syed irfan

Données de voitures d'importation

import pandas as pd

cars = pd.read_csv('cars.csv', index_col = 0)

Voici à quoi ressemble le fichier cars.csv.

Imprimer la colonne drives_right en tant que série:

print(cars.loc[:,"drives_right"])

    US      True
    AUS    False
    JAP    False
    IN     False
    RU      True
    MOR     True
    EG      True
    Name: drives_right, dtype: bool

La version à un support donne une série de Pandas, la version à deux supports donne un Pandas DataFrame.

Imprimer la colonne drives_right en tant que DataFrame

print(cars.loc[:,["drives_right"]])

         drives_right
    US           True
    AUS         False
    JAP         False
    IN          False
    RU           True
    MOR          True
    EG           True

L'ajout d'une série à une autre série crée un DataFrame.

0
abhishek_7081

Série est un tableau étiqueté unidimensionnel capable de contenir n'importe quel type de données (nombres 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 consiste à appeler:

s = pd.Series(data, index=index)

DataFrame est une structure de données étiquetée en 2 dimensions avec des colonnes de types potentiellement différents. Vous pouvez le voir comme une feuille de calcul, une table SQL ou un dictionnaire d'objets Series.

 d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
 two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d)
0
Yog