Warum führt „groupby().apply()“ zu inkonsistenten Ergebnissen für identische Gruppen, wenn der DataFrame über überlappenPython

Python-Programme
Anonymous
 Warum führt „groupby().apply()“ zu inkonsistenten Ergebnissen für identische Gruppen, wenn der DataFrame über überlappen

Post by Anonymous »

Mir ist aufgefallen, dass groupby().apply() unterschiedliche Ergebnisse für zwei Gruppen liefert, die identisch aussehen, außer dass der gesamte DataFrame doppelte Indexwerte hat.
Hier ist ein minimal reproduzierbares Beispiel:

Code: Select all

import pandas as pd

df = pd.DataFrame({
'group': ['A','A','B','B','B'],
'value': [1,2,1,2,2]
}, index=[0,1,1,2,3])  # note the duplicate index: 1 appears twice

result = df.groupby('group').apply(lambda g: g)
print(result)
Ausgabe:

Code: Select all

    group  value
group
A     A     1
A     2
B     B     1
B     2
B     2
Aber wenn ich den Index zurücksetze, damit er eindeutig wird:

Code: Select all

df2 = df.reset_index(drop=True)
print(df2.groupby('group').apply(lambda g: g))
Ich erhalte eine andere Struktur (insbesondere innerhalb der B-Gruppe).
Warum ändert das Vorhandensein doppelter Indexwerte die Art und Weise, wie groupby().apply() den zurückgegebenen Index erstellt? Wie können die ursprünglichen Zeilen korrekt beibehalten werden und unerwartete Indexverschachtelungen beim Anwenden von Funktionen vermieden werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post