2017-04-23 14 views
1

Ich lese in einem CSV, und ich möchte die ersten beiden Spaltennamen überschreiben.Pandas überschreiben Spaltennamen nach Position

  • kann ich nicht df.rename(columns={0:'name 1', 1:'name 2'}) verwenden, da die Spalten nicht 0 aufgerufen werden und 1. Sie Namen haben, ich will nur, sie werfen.

  • Es scheint wie

    df.columns.values[0] = 'name 1' 
    df.columns.values[1] = 'name 2' 
    

    ernsthafte Probleme hat, weil danach df['name 1'] mir eine KeyError gibt.

  • Was wäre ideal wäre pd.read_csv(file, names=['name 1', 'name 2', ...]. Seltsamerweise benennt dies Spalte 3 "Ellipsis" um und hat nicht den gewünschten Effekt.

Irgendwelche Ideen, wie man das sinnvoll in Pandas macht?

Antwort

4

Versuchen Sie folgendes:

df.columns = ['name 1', 'name 2'] + df.columns[2:].tolist() 
+0

Dank @MaxU! Das funktioniert. –

+0

@AlexLenail, herzlich willkommen :) – MaxU

Verwandte Themen