it-swarm.com.de

Wie setze ich den Index in einem pandas Datenrahmen zurück?

Ich habe einen Datenrahmen, aus dem ich einige Zeilen entferne. Als Ergebnis erhalte ich einen Datenrahmen, in dem der Index ungefähr so ​​aussieht: [1,5,6,10,11] und ich möchte ihn auf [0,1,2,3,4] zurücksetzen. Wie kann ich es tun?


Folgendes scheint zu funktionieren:

df = df.reset_index()
del df['index']

Folgendes funktioniert nicht:

df = df.reindex()
267
Roman

reset_index() ist das, wonach Sie suchen. Wenn Sie nicht möchten, dass es als Spalte gespeichert wird, gehen Sie wie folgt vor:

df = df.reset_index(drop=True)
547
mkln

Eine andere Lösung ist die Zuweisung von RangeIndex oder range:

df.index = pd.RangeIndex(len(df.index))

df.index = range(len(df.index))

Es ist schneller:

df = pd.DataFrame({'a':[8,7], 'c':[2,4]}, index=[7,8])
df = pd.concat([df]*10000)
print (df.head())

In [298]: %timeit df1 = df.reset_index(drop=True)
The slowest run took 7.26 times longer than the fastest. This could mean that an intermediate result is being cached.
10000 loops, best of 3: 105 µs per loop

In [299]: %timeit df.index = pd.RangeIndex(len(df.index))
The slowest run took 15.05 times longer than the fastest. This could mean that an intermediate result is being cached.
100000 loops, best of 3: 7.84 µs per loop

In [300]: %timeit df.index = range(len(df.index))
The slowest run took 7.10 times longer than the fastest. This could mean that an intermediate result is being cached.
100000 loops, best of 3: 14.2 µs per loop
39
jezrael
data1.reset_index(inplace=True)
9
user10692571