Maison >développement back-end >Tutoriel Python >pandas+dataframe implémente les opérations de sélection et de découpage de lignes et de colonnes
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
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
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]
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
Représentation incorrecte :
print df.loc[1:3, [2, 3]]#.loc仅支持列名操作
KeyError: 'None of [[2, 3]] are in the [columns]'
print df.loc[[2, 3]]#.loc可以不加列名,则是行选择
sex tip total_bill 2 Male 3.50 23.68 3 Male 3.31 23.68
print df.iloc[1:3]#.iloc可以不加第几列,则是行选择
sex tip total_bill 1 Male 1.66 10.34 2 Male 3.50 23.68
print df.iloc[1:3, 'tip': 'total_bill']
TypeError: cannot do slice indexing on <class 'pandas.indexes.base.Index'> with these indexers [tip] of <type 'str'>
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']]
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
print df.ix[[1, 2]]#行选择
sex tip total_bill 1 Male 1.66 10.34 2 Male 3.50 23.68
print df[1: 3] print df[['total_bill', 'tip']] # print df[1:2, ['total_bill', 'tip']] # TypeError: unhashable type
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
print df[1:3,1:2]
TypeError: unhashable type
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!