2016-09-18 3 views
1

Я импортировал файл CSV как dataframe из базы данных Зарплаты в Сан-Франциско из KaggleПереименовать несколько неназванных столбцов в панд dataframe

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

Я создал dataframe как агрегатной функции от «ДФ»

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

Задача 1: первый и второй столбцы отображаются как безымянные, и этого не должно произойти.

enter image description here

Даже когда я использую код

df2.columns 

Это только имена TotalPay как столбец

Проблема 2: я пытаюсь переименовать, например, в первом столбце как JobTitle и код ничего не делает

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

Значит, ион, который был приведен здесь, по-видимому, не работает: Rename unnamed column pandas dataframe.

Я хочу два возможных решения: 1) То, что агрегатная функция уважает именование столбцов и/или 2) переименовывать колонки пустого dataframe в

+0

попробуйте следующее: 'df3 = df2.reset_index()' – MaxU

+0

фантастический! что решает мою проблему, не могли бы вы разместить ее в качестве ответа, чтобы мы могли дать вам кредит? Благодаря! –

+0

Первая и вторая «столбцы» на самом деле являются объектами индекса панды. (Вместо 1, 2, 3, 4, 5 и т. Д., Нумерация каждой строки, у вас есть пара помеченных индексов). Они не работают так же, как обычные столбцы. Попробуйте 'df2.index' для доступа к ним вместо' df2.columns'. – pylang

ответ

0

Цитирование ответ на MaxU:

df3 = df2.reset_index() 

Спасибо!

2

Проблема в том, на самом деле не что вам нужно переименовать столбцы.
. На что относятся первые несколько строк файла .csv, на которые вы импортируете, потому что вы не импортируете его должным образом. Pandas не признает, что JobTitle и Year предназначены для заголовков столбцов. Pandas read_csv() is very flexible с тем, что он позволит вам сделать.
Если вы импортируете данные правильно, вам не нужно будет переиндексировать или перемаркировать.

+0

ОП спросил о 'df2' DF, который является результатом операции' groupby (['JobTitle', 'Year']) ', что приводит к' ''' JobTitle ',' Year ']' multi-index. Поэтому играть с 'read_csv()' не поможет – MaxU

+0

А, да. Виноват. – Batman