2016-09-18 9 views
1

ich eine csv als Datenrahmen von San Francisco Gehälter Datenbank von Kagglemehrere unbenannte Spalten in einer Pandas Datenrahmen

df=pd.read_csv('Salaries.csv') 

importiert habe ich eine Datenrahmen als Aggregat-Funktion von ‚df‘

df2=df.groupby(['JobTitle','Year'])[['TotalPay']].median() 

Problem 1: Die erste und zweite Spalte erscheinen als namenlos und das sollte nicht passieren.

enter image description here

Auch wenn ich Code von

df2.columns 

Es nur Namen gesamtzahlung als Spalte

Problem 2: Ich versuche zu benennen, zum Beispiel, die erste Spalte als Jobtitel und der Code tut nichts

df3=df2.rename(columns = {0:'JobTitle'},inplace=True) 

Also die Lösung Ion, das hier gegeben wurde, funktioniert anscheinend nicht: Rename unnamed column pandas dataframe.

Ich möchte zwei mögliche Lösungen: 1) Dass die Aggregatfunktion der Spalte Benennung UND/ODER 2) Benennen Sie die leeren Datenrahmen Spalten

+0

versuchen Sie dies: 'df3 = df2.reset_index()' – MaxU

+0

fantastisch! das löst mein Problem, könntest du es als Antwort posten, damit wir dir Anerkennung geben können? Vielen Dank! –

+0

Die erste und zweite "Spalte" sind eigentlich Panda-Index-Objekte. (Anstelle von 1, 2, 3, 4, 5 usw., die jede Zeile nummerieren, haben Sie ein Paar beschrifteter Indizes). Sie funktionieren nicht wie normale Spalten. Probieren Sie 'df2.index' aus, um auf sie zuzugreifen anstatt auf' df2.columns'. – pylang

Antwort

0

Zitiert Antwort von MAXU:

df3 = df2.reset_index() 

Vielen Dank!

2

Das Problem ist nicht wirklich, dass Sie die Spalten umbenennen müssen respektiert.
Wie sehen die ersten paar Zeilen der .csv-Datei, die Sie importieren, aus, weil Sie sie nicht ordnungsgemäß importieren? Pandas erkennt nicht, dass JobTitle und Year Spaltenüberschriften sein sollen. Pandas read_csv() ist very flexible mit was Sie tun können.
Wenn Sie die Daten ordnungsgemäß importieren, müssen Sie nicht neu indizieren oder umbenennen.

+0

OP fragte nach dem 'df2' DF, was das Ergebnis der Operation' groupby (['JobTitle', 'Year']) 'ist, die zu' ['JobTitle', 'Year'] 'multi-index führt. Also mit 'read_csv()' herumspielen hilft nicht – MaxU

+0

Ah, ja. Mein Fehler. – Batman

Verwandte Themen