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.