2017-01-05 3 views
2

У меня есть набор данных для чтения и выполнения некоторой очистки данных перед окончательным использованием.использовать привязку оператора к кадру данных pandas для чтения данных, удаление нежелательных столбцов, переименование столбцов и чтение нескольких строк.

Я знаю, как сделать это, выполнив отдельные самостоятельные шаги следующим образом:

data = pd.read_excel('C:\Users\pappu.a.kumar\Documents\data\coursera\python\Energy Indicators.xls',skiprows=17, skip_footer=0) 
    del data['Unnamed: 0'] 
    del data['Unnamed: 1'] 
    data.columns = ['Country', 'Energy Supply', 'Energy Supply per Capita', '% Renewable'] 
    fdata = data.ix[:226] 

Теперь я хочу, чтобы сделать все эти шаги, используя оператор цепочки. Моя первая попытка сделать так, что написано ниже:

data = (pd.read_excel('C:\Users\pappu.a.kumar\Documents\data\coursera\python\Energy Indicators.xls',skiprows=17, skip_footer=0) 
     .(del data['Unnamed: 0']) 
     .(del data['Unnamed: 1']) 
     .(columns = ['Country', 'Energy Supply', 'Energy Supply per Capita', '% Renewable']) 
     .(ix[:226])) 

Но этот код вызывает следующую ошибку:

File "", line 3

.(del data['Unnamed: 0'])

^

SyntaxError: invalid syntax

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

+1

Вы ищете '.drop ('Без имени: 0', ось = 1) '. – IanS

+0

Спасибо, Это помогло. @IanS –

ответ

3

Если положение неназванных столбцов по-прежнему одинаково, используйте параметр names в read_excel для установки новых имен колонок, а затем удалите ненужные столбцы по drop. Для выбора можно использовать .iloc[226], .head(226), .ix(226):

#2 last columns are unnecessary - 2 last values of list in parameter names are 'tmp1' and 'tmp2' 
data = pd.read_excel('C:\Users\pappu.a.kumar\Documents\data\coursera\python\Energy Indicators.xls',skiprows=17, skip_footer=0, names=['Country', 'Energy Supply', 'Energy Supply per Capita', '% Renewable', 'tmp1', 'tmp2']) 
     .drop(['tmp1','tmp2'], axis=1) 
     .head(226) 

Другим возможным решением является переименование столбцов:

data = pd.read_excel('C:\Users\pappu.a.kumar\Documents\data\coursera\python\Energy Indicators.xls',skiprows=17, skip_footer=0) 
     .drop(['Unnamed: 0','Unnamed: 1'], axis=1) 
     .rename(columns={'firstcol':'Country', 'secondcol': 'Energy Supply', ...}) 
     .head(226) 
+0

@piRSquared. Congrats. Может быть, вы могли бы сфотографировать другого парня, чтобы он был запрещен? Просто шучу. –

+0

Будет ли это работать так же, если выпавшие столбцы не являются последними? –

Смежные вопросы