pandas+dataframe implémente les opérations de sélection et de découpage de lignes et de colonnes

php中世界最好的语言
Libérer: 2018-04-12 09:57:35
original
4580 Les gens l'ont consulté

Cette fois, je vais vous présenter pandas+dataframe pour implémenter les opérations de sélection et de découpage de lignes et de colonnes. Quelles sont les précautions pour que pandas+dataframe implémente les opérations de sélection et de découpage de lignes et de colonnes. cas pratique, jetons un coup d'oeil.

La sélection en SQL est basée sur le nom de la colonne ; Pandas est plus flexible. Elle peut non seulement être sélectionnée en fonction du nom de la colonne, mais également en fonction de la position (numéro). , dans quelle position Ligne et colonne, veuillez noter que la position des lignes et colonnes des pandas commence à 0). Les fonctions associées sont les suivantes :

1) loc, en fonction de l'étiquette de la colonne, des lignes spécifiques peuvent être sélectionnées (en fonction de l'index de la ligne) ;

2) iloc, en fonction de la position de la ligne/colonne ;

3) at, localisez rapidement les éléments du DataFrame en fonction de l'index de ligne et de l'étiquette de colonne spécifiés

4) iat, similaire à at, sauf qu'il ; est positionné en fonction de la position ;

5) ix, un mélange de loc et iloc, prend en charge à la fois l'étiquette et la position

Instance

import pandas as pd
import numpy as np
df = pd.DataFrame({'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59],
          'tip': [1.01, 1.66, 3.50, 3.31, 3.61],
          'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})
# data type of columns
print df.dtypes
# indexes
print df.index
# return pandas.Index
print df.columns
# each row, return array[array]
print df.values
print df
Copier après la connexion
sex      object
tip      float64
total_bill  float64
dtype: object
RangeIndex(start=0, stop=5, step=1)
Index([u'sex', u'tip', u'total_bill'], dtype='object')
[['Female' 1.01 16.99]
 ['Male' 1.66 10.34]
 ['Male' 3.5 23.68]
 ['Male' 3.31 23.68]
 ['Female' 3.61 24.59]]
   sex  tip total_bill
0 Female 1.01    16.99
1  Male 1.66    10.34
2  Male 3.50    23.68
3  Male 3.31    23.68
4 Female 3.61    24.59
Copier après la connexion
print df.loc[1:3, ['total_bill', 'tip']]
print df.loc[1:3, 'tip': 'total_bill']
print df.iloc[1:3, [1, 2]]
print df.iloc[1:3, 1: 3]
Copier après la connexion
  total_bill  tip
1    10.34 1.66
2    23.68 3.50
3    23.68 3.31
  tip total_bill
1 1.66    10.34
2 3.50    23.68
3 3.31    23.68
  tip total_bill
1 1.66    10.34
2 3.50    23.68
  tip total_bill
1 1.66    10.34
2 3.50    23.68
Copier après la connexion

Représentation incorrecte :

print df.loc[1:3, [2, 3]]#.loc仅支持列名操作
Copier après la connexion
KeyError: 'None of [[2, 3]] are in the [columns]'
Copier après la connexion
print df.loc[[2, 3]]#.loc可以不加列名,则是行选择
Copier après la connexion
  sex  tip total_bill
2 Male 3.50    23.68
3 Male 3.31    23.68
Copier après la connexion
print df.iloc[1:3]#.iloc可以不加第几列,则是行选择
Copier après la connexion
sex  tip total_bill
1 Male 1.66    10.34
2 Male 3.50    23.68
Copier après la connexion
print df.iloc[1:3, 'tip': 'total_bill']
Copier après la connexion
TypeError: cannot do slice indexing on <class &#39;pandas.indexes.base.Index&#39;> with these indexers [tip] of <type &#39;str&#39;>
Copier après la connexion
print df.at[3, 'tip']
print df.iat[3, 1]
print df.ix[1:3, [1, 2]]
print df.ix[1:3, ['total_bill', 'tip']]
Copier après la connexion
3.31
3.31
  tip total_bill
1 1.66    10.34
2 3.50    23.68
3 3.31    23.68
  total_bill  tip
1    10.34 1.66
2    23.68 3.50
3    23.68 3.31
Copier après la connexion
print df.ix[[1, 2]]#行选择
Copier après la connexion
  sex  tip total_bill
1 Male 1.66    10.34
2 Male 3.50    23.68
Copier après la connexion
print df[1: 3]
print df[['total_bill', 'tip']]
# print df[1:2, ['total_bill', 'tip']] # TypeError: unhashable type
Copier après la connexion
sex  tip total_bill
1 Male 1.66    10.34
2 Male 3.50    23.68
  total_bill  tip
0    16.99 1.01
1    10.34 1.66
2    23.68 3.50
3    23.68 3.31
4    24.59 3.61
Copier après la connexion
print df[1:3,1:2]
Copier après la connexion
TypeError: unhashable type
Copier après la connexion

Je te crois Je l'ai maîtrisé après avoir lu le cas dans cet article. Pour des méthodes plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Quelles sont les méthodes de requête Dataframe dans les pandas

Selenium+cookie ignore la mise en œuvre de la connexion au code de vérification Explication détaillée des étapes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal