Pandas 从来自 Excel 的数据框中删除列和行

Pandas dropping columns and rows from a dataframe that came from Excel

我试图在数据框中删除一些无用的列,但出现错误:"too many indices for array"

这是我的代码:

import pandas as pd
def answer_one():
    energy = pd.read_excel("Energy Indicators.xls")
    energy.drop(energy.index[0,1], axis = 1)
answer_one()

选项 1
切片索引时你的语法是错误的,它应该是 columns

import pandas as pd

energy = pd.read_excel("Energy Indicators.xls")
energy.drop(energy.columns[[0,1]], axis=1)

选项 2
我会这样做

import pandas as pd

energy = pd.read_excel("Energy Indicators.xls")
energy.iloc[:, 2:]

我认为当 parsing/reading Excel 文件时跳过不需要的列更好:

energy = pd.read_excel("Energy Indicators.xls", usecols='C:ZZ')

如果您尝试删除该列,则需要更改语法。您可以通过 header 或索引来引用它们。以下是您如何按名称引用它们。

import pandas as pd

energy = pd.read_excel("Energy Indicators.xls")
energy.drop(['first_colum', 'second_column'], axis=1, inplace=True)

另一个解决方案是首先将它们排除在外:

energy = pd.read_excel("Energy Indicators.xls", usecols=[2:])

这也有助于加快导入速度。