Entfernen Sie den Indexnamen in Pandas


77

Ich habe einen Datenrahmen wie diesen:

In [10]: df
Out[10]: 
         Column 1
foo              
Apples          1
Oranges         2
Puppies         3
Ducks           4

Wie entferne index name fooich aus diesem Datenrahmen? Die gewünschte Ausgabe lautet wie folgt:

In [10]: df
Out[10]: 
         Column 1             
Apples          1
Oranges         2
Puppies         3
Ducks           4

Antworten:


72

Verwenden del df.index.name

In [16]: df
Out[16]:
         Column 1
foo
Apples          1
Oranges         2
Puppies         3
Ducks           4

In [17]: del df.index.name

In [18]: df
Out[18]:
         Column 1
Apples          1
Oranges         2
Puppies         3
Ducks           4

14
Mit pandasVersion 1.0.3 scheint dies nicht mehr zu funktionieren. Es schlägt mit "AttributeError: Attribut kann nicht gelöscht werden" fehl.
— Billjoie

1
@ Billjoie wissen Sie, wie man dieses Problem in Pandas 1.0.3 löst. , da del df.index.namefunktioniert nicht
— ctrl_z

5
@mrn, La solution de @EdChum conctionne très bien:df.index.name = None
— billjoie

1
@ Billjoie Segne dein Herz. Ich bin schon eine Weile dabei. Dieser del df.index.name funktioniert nicht mit späteren Versionen von Pandas.
— Chen Lizi

67

Alternativ können Sie Nonedem index.nameAttribut einfach Folgendes zuweisen :

In [125]:

df.index.name = None
df
Out[125]:
         Column 1

Apples          1
Oranges         2
Puppies         3
Ducks           4

43

Ab Version können 0.18.0Sie verwenden rename_axis:

print df
         Column 1
foo              
Apples          1
Oranges         2
Puppies         3
Ducks           4

print df.index.name
foo


print df.rename_axis(None)
         Column 1
Apples          1
Oranges         2
Puppies         3
Ducks           4

print df.rename_axis(None).index.name
None

# To modify the DataFrame itself:
df.rename_axis(None, inplace=True)
print df.index.name
None

4

Ich habe viel zu lange gebraucht, um eine Antwort zu finden, die tatsächlich für mich funktioniert hat. Siehe unten.

df = df.rename_axis(None, axis = 1)

Ich bin sicher, dass einige dieser anderen Antworten für andere Menschen funktionieren, aber sie haben definitiv nicht für mich funktioniert :(


Dies ist die einzige Antwort, die für mich funktioniert hat. Verwenden von rename_axis () und Hinzufügen von axis = 1
— zipline86
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.