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