从Excel导入的数据框中删除列和行

3
我将尝试删除数据框中一些无用的列,但是我遇到了一个错误:“数组的索引太多”。
这是我的代码:
import pandas as pd
def answer_one():
    energy = pd.read_excel("Energy Indicators.xls")
    energy.drop(energy.index[0,1], axis = 1)
answer_one()
3个回答

5

选项1
在切片时您的语法不正确,应该是列。

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:]

非常感谢,那么行应该怎么办?由于我似乎也无法删除它们,请问正确的语法是什么?@piRSquared - Ali
选项 1 energy.drop(energy.index[[0,1]]) - piRSquared
选项二。 - piRSquared

2

当解析/读取Excel文件时,我认为跳过不必要的列会更好:

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

1
内存溢出 )-: 已经持续了4个小时! - piRSquared
1
@piRSquared,我知道这种感觉:-D - MaxU - stand with Ukraine
1
@Ali 这是一个非常好的答案,如果我能的话,我会点赞它。 - piRSquared
1
如果您使用的是Pandas >0.25,则关键字称为usecols,而不是parse_cols - elyptikus

0

如果您想要删除列,需要更改语法。您可以通过标题或索引引用它们。以下是如何按名称引用它们的方法。

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:])

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


1
第二个解决方案给我报错:"SyntaxError: invalid syntax"。 - mah65
第二种解决方案显然是错误的。 - Manuel Fedele

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接