Was ist die Auswirkung auf die Leistungsfähigkeit von non-unique-Indizes in pandas?

Aus der pandas Dokumentation, die ich gesammelt habe, die einzigartige geschätzten Indizes machen bestimmte Operationen effizienter, und das nicht-eindeutige Indizes werden gelegentlich geduldet.

Von außen, es sieht nicht wie nicht eindeutige Indizes in Anspruch genommen, in keiner Weise. Zum Beispiel, die folgenden ix Abfrage ist langsam genug, dass es scheint, um mit dem Scannen der gesamten dataframe

In [23]: import numpy as np
In [24]: import pandas as pd
In [25]: x = np.random.randint(0, 10**7, 10**7)
In [26]: df1 = pd.DataFrame({'x':x})
In [27]: df2 = df1.set_index('x', drop=False)
In [28]: %timeit df2.ix[0]
1 loops, best of 3: 402 ms per loop
In [29]: %timeit df1.ix[0]
10000 loops, best of 3: 123 us per loop

(Ich weiß die zwei ix Abfragen nicht das gleiche zurückgeben-es ist nur ein Beispiel, dass Anrufe zu ix auf einen nicht eindeutigen index erscheinen viel langsamer)

Gibt es eine Möglichkeit, Koax-pandas in schneller lookup-Methoden, wie binäre Suche auf nicht eindeutigen und/oder sortierte Indizes?

InformationsquelleAutor ChrisB | 2013-05-18
Schreibe einen Kommentar