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.
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
.
à 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
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'])
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.
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)