use operator chaining on pandas data frame to read data, del unwanted columns, rename columns and read few rows
在最终使用之前,我有一个数据集要读取并清理数据。
我知道如何通过以下单独的独立步骤做到这一点:
1 2 3 4 5 | 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] |
现在,我想使用操作符链接来完成所有这些步骤。我第一次尝试这样做是写在下面的:
1 2 3 4 5 | 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 2 3 4 | #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) |
另一种可能的解决方案是重命名列:
1 2 3 4 | 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) |