我有一个读取的数据框
energy = pd.read_excel('Energy Indicators.xls', skiprows = 16,
skip_footer = 38, skip_cols = 2)
energy.set_index('Unnamed: 2')
它返回以下数据帧(第一行不是理想的,但我可以稍后解决)
Unnamed: 0 Unnamed: 1 Unnamed: 2 Energy Supply Energy Supply per Capita
0 NaN NaN NaN Petajoules Gigajoules
1 NaN Afghanistan Afghanistan 321 10
2 NaN Albania Albania 102 35
3 NaN Algeria Algeria 1959 51
4 NaN Andorra Andorra 9 121
5 Nan Angola Angola 642 27
我期望如下所示的数据帧,其中省略[[Unnamed:0']和['Unnamed:1'],并将['Unnamed:2']设置为索引,如下所示:
Unnamed: 2 Energy Supply Energy Supply per Capita
0 NaN Petajoules Gigajoules
1 Afghanistan 321 10
2 Albania 102 35
3 Algeria 1959 51
4 Andorra 9 121
5 Angola 642 27
但是这些东西都没有发生(当我省略相应的参数和set_index时,它保持相同。当我尝试使用skip_cols或set_index()执行代码时,它又一次完全相同。为什么这两段代码不做任何改变给我吗?
答案 0 :(得分:0)
在代码中,当您在第三行设置索引时,必须将就位标志传递为true
energy = pd.read_excel('Energy Indicators.xls', skiprows = 16,
skip_footer = 38, skip_cols = 2)
energy.set_index('Unnamed: 2', inplace=True) #Here pass inplace flag
因此该索引设置在原始数据框架上,而不是其副本上。
答案 1 :(得分:0)
skip_cols
参数似乎不起作用(使用pd.__version__ '0.23.0'
)。如果您知道列范围,则可以尝试使用usecols
参数。您也可以像这样在pd.read_excel
内设置索引列:
energy = pd.read_excel('Energy Indicators.xls', usecols='C:E', index_col=0, skiprows=16, skip_footer=38)
print(energy)
EnergySupply EnergySupplyperCapita
NaN Petajoules Gigajoules
Afghanistan 321 10
Albania 102 35
Algeria 1959 51
Andorra 9 121
Angola 642 27