J'ai un cadre de données df :
>>> df
sales discount net_sales cogs
STK_ID RPT_Date
600141 20060331 2.709 NaN 2.709 2.245
20060630 6.590 NaN 6.590 5.291
20060930 10.103 NaN 10.103 7.981
20061231 15.915 NaN 15.915 12.686
20070331 3.196 NaN 3.196 2.710
20070630 7.907 NaN 7.907 6.459
Ensuite, je veux supprimer les lignes avec certains numéros de séquence qui sont indiqués dans une liste, supposons qu'il s'agit de [1,2,4],
alors à gauche :
sales discount net_sales cogs
STK_ID RPT_Date
600141 20060331 2.709 NaN 2.709 2.245
20061231 15.915 NaN 15.915 12.686
20070630 7.907 NaN 7.907 6.459
Comment ou quelle fonction peut faire cela ?
Utilisez DataFrame.drop et passez-lui une série d'étiquettes d'index :
In [65]: df
Out[65]:
one two
one 1 4
two 2 3
three 3 2
four 4 1
In [66]: df.drop(df.index[[1,3]])
Out[66]:
one two
one 1 4
three 3 2
Notez qu'il peut être important d'utiliser la commande "inplace" ; lorsque vous voulez faire le dépôt en ligne.
df.drop(df.index[[1,3]], inplace=True)
Comme votre question initiale ne renvoie rien, cette commande doit être utilisée. http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.drop.html
Vous pouvez également passer à [DataFrame.drop][1] l'étiquette elle-même (au lieu d'une série d'étiquettes d'index) :
In[17]: df
Out[17]:
a b c d e
one 0.456558 -2.536432 0.216279 -1.305855 -0.121635
two -1.015127 -0.445133 1.867681 2.179392 0.518801
In[18]: df.drop('one')
Out[18]:
a b c d e
two -1.015127 -0.445133 1.867681 2.179392 0.518801
Ce qui est équivalent à :
In[19]: df.drop(df.index[[0]])
Out[19]:
a b c d e
two -1.015127 -0.445133 1.867681 2.179392 0.518801
[1] : http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop.html