Si je découpe un Voici l'exemple de code: pandas dataframe avec dataset.iloc [:, 1: 2] .values , cela me donne un 2 dimensions (matrice) données structurées où dataset.iloc [:, 1] .values me donne des données 1 dimension . Donc, mon doute est que iloc [:, 1: 2] & iloc [:, 1] ne font pas la même chose? >>> df1 = df.iloc[:, 1:2].values
>>> print(df1.shape,df1.ndim)
(9578, 1) 2
>>> df2 = df.iloc[:, 1].values
>>> print(df2.shape,df2.ndim)
(9578,) 1
>>>
4 Réponses :
df.iloc [:, 1: 2] renvoie un dataframe (matrice) tandis que df.iloc [:, 1] renvoie une série (vecteur). Un vecteur n'a pas de taille de colonne. Essayez ceci si vous souhaitez conserver la structure du dataframe
df.iloc[:,[1]]
Techniquement parlant, la méthode de découpage que vous utilisez est appelée " Sélection par position ". iloc est appelé emplacement basé sur un entier.
Lorsque vous utilisez df.iloc [:, 1: 2] , la sortie résultante serait un objet pandas DataFrame: p >
>>> type(df.iloc[:, 1]) pandas.core.series.Series
Lorsque vous utilisez df.iloc [:, 1] , la sortie résultante serait un objet de la série pandas:
>>> type(df.iloc[:, 1:2]) pandas.core.frame.DataFrame
Oui, iloc [:, 1: 2] & iloc [:, 1] ils ne sont pas similaires car l'un donne Dataframe et l'autre donne Serious en sortie.
Utilisation df.iloc [:, 1: 2] donne Dataframe et il donne en 2D car Dataframe est une structure de données 2D
type(df.iloc[:, 1]) pandas.core.series.Series
Utilisation de df.iloc [:, 1] donne Series and Series est un tableau étiqueté 1-d
type(df.iloc[:, 1:2]) pandas.core.frame.DataFrame
Pandas iloc () fait en fait ce que vous devez attendre dans un contexte Python. Comparez ce qui suit:
>>> numbers = [0, 1, 2] >>> numbers[1] 1 >>> numbers[1:2] [1]
Le premier donne des données à 0 dimension et le second des données à une dimension qui sont analogues à votre exemple.
Puisque vous obtenez des résultats différents, il est assez prudent de dire qu'ils ne font pas la même chose.
.iloc [:, 1]renvoie une série tandis que.iloc [:, 1: 2]renvoie une trame de données. C'est la même chose quedf ['A']renvoie la série tandis quedf [['A']]renvoie la trame de données