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
Markov Zain
quelle

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
S Anand
quelle
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
EdChum
quelle
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
jezrael
quelle
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 :(

Matthew Withrow
quelle
Dies ist die einzige Antwort, die für mich funktioniert hat. Verwenden von rename_axis () und Hinzufügen von axis = 1
zipline86