web-dev-qa-db-fra.com

Comment imprimer une ligne spécifique d'un pandas DataFrame?

J'ai une base de données massive, et je reçois l'erreur:

TypeError: ("Empty 'DataFrame': no numeric data to plot", 'occurred at index 159220')

J'ai déjà supprimé les valeurs NULL et vérifié les types de données pour le DataFrame, je ne vois donc pas pourquoi il échoue sur cette ligne.

Comment imprimer uniquement cette ligne (index 159220) du bloc de données?

Merci

33
singmotor

Lorsque vous appelez loc avec une valeur scalaire, vous obtenez un pd.Series. Cette série aura alors un dtype. Si vous voulez voir la ligne telle qu'elle est dans le cadre de données, vous voudrez passer un tableau tel que l'indexeur à loc.

Enveloppez votre valeur d'index avec une paire supplémentaire de crochets

print(df.loc[[159220]])
32
piRSquared

Pour imprimer une ligne spécifique, nous avons quelques méthodes pandas

  1. loc - Il n'obtient que l'étiquette i.e nom de la colonne ou Caractéristiques
  2. iloc - Ici, i représente un entier, en fait un numéro de ligne
  3. ix - C'est un mélange d'étiquette et d'entier

Comment utiliser pour une ligne spécifique

  1. loc
df.loc[row,column]

Pour la première ligne et toute la colonne

df.loc[0,:]

Pour la première ligne et une colonne spécifique

df.loc[0,'column_name']
  1. iloc

Pour la première ligne et toute la colonne

df.iloc[0,:]

Pour la première ligne et une colonne spécifique, à savoir les trois premiers colonnes

df.iloc[0,0:3]
15
kamran kausar

Utilisez ix opérateur:

print df.ix[159220]
14
CK Chen

On dirait que vous appelez df.plot(). Cette erreur indique que vous essayez de tracer une image sans données numériques. Les types de données ne devraient pas affecter ce que vous print().

Utiliser print(df.iloc[159220])

4
Batman