Parfois, le contenu de l'écriture du code correctement. Il a fallu beaucoup de temps pour être confus lors de la spécification du dataframe dans les pandas. J'aimerais l'organiser. C'est une compilation de pandas débutants, donc si vous faites une erreur ou avez un meilleur résumé, donnez-moi quelques conseils.
Cliquez ici pour le blog qui fonctionne: Effort 1mm
Chaque version est la suivante.
pandas (0.18.1)
numpy (1.11.0)
Python 2.7.10
Il existe trois façons de spécifier des éléments dans pandas DataFrame.
Le DataFrame prérequis a été créé avec le code suivant en faisant référence à 10minites to pandas.
dates = pd.date_range('20130101', periods=6) df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
Le DataFrame résultant ressemble à ceci.
A B C D
2013-01-01 -0.682002 1.977886 0.348623 0.405755
2013-01-02 0.085698 2.067378 -0.356269 1.349520
2013-01-03 0.058207 -0.539280 0.023205 1.154293
2013-01-04 -0.319075 1.174168 -1.282305 0.359333
2013-01-05 -2.557677 0.922672 0.202042 0.171645
2013-01-06 1.039422 0.300340 0.701594 -0.229087
Il semble qu'il puisse être traité dans le sens des lignes ou dans le sens des colonnes par la méthode spécifiée.
#Spécifiez une seule colonne
df[‘A’] #Nom de colonne=Spécifiez A
df.A #Comme ci-dessus
#Tranche de direction de ligne: df[ 0:3 ]
df[0:3] #Spécifiez de la ligne 0 à la ligne 3
df[‘20130102’:’20130104’] #L'index est 2013-01-02~2013-01-Spécifiez jusqu'à 04
Le premier des arguments spécifiés (puis-je l'appeler?) Est l'opération sur l'index, et le second est l'opération sur la colonne.
#Obtenez l'index correspondant
# A 0.469112
# B -0.282863
# C -1.509059
# D -1.135632
# Name: 2013-01-01 00:00:00, dtype: float64
df.loc[dates[0]]
#Spécifiez la colonne d'index en même temps.
# A B
# 2013-01-01 0.469112 -0.282863
# 2013-01-02 1.212112 -0.173215
# 2013-01-03 -0.861849 -2.104569
# 2013-01-04 0.721555 -0.706771
# 2013-01-05 -0.424972 0.567020
# 2013-01-06 -0.673690 0.113648
df.loc[:, [‘A’, ‘B’]]
#Obtenir l'index par nom d'index
# A B
# 2013-01-02 1.212112 -0.173215
# 2013-01-03 -0.861849 -2.104569
# 2013-01-04 0.721555 -0.706771
df.loc[‘20130102’:’20130104’, [‘A’, ‘B’]] #Lorsque vous spécifiez plusieurs colonnes, transmettez-les sous forme de liste
#Si vous souhaitez en spécifier un seul, il est plus rapide à utiliser à que loc
#0.46911229990718628
df.at[dates[0],'A']
Comment spécifier par la position de l'élément lors du remplacement par une matrice. Bien sûr, vous pouvez en sélectionner plusieurs.
#Spécifié par la position d'index (3ème ligne cette fois)
# A 0.721555
# B -0.706771
# C -1.039575
# D 0.271860
# Name: 2013-01-04 00:00:00, dtype: float64
df.iloc[3]
#indice/Spécification simultanée des colonnes(Ici, 3ème à 4ème lignes, 0ème à 1ère colonnes)
# A B
#2013-01-04 0.721555 -0.706771
#2013-01-05 -0.424972 0.567020
df.iloc[3:5,0:2]
#Spécifiez les éléments spécifiques qui sont ignorés
# A C
# 2013-01-02 1.212112 0.119209
# 2013-01-03 -0.861849 -0.494929
# 2013-01-05 -0.424972 0.276232
df.iloc[[1,2,4],[0,2]]
Je n'ai pas d'autre choix que de m'y habituer!
Cliquez ici pour le blog qui fonctionne: Effort 1mm
Recommended Posts