首页 > 解决方案 > 从熊猫数据框中永久删除行

问题描述

如何从熊猫数据框中永久删除行?例如:我有一个包含标题列的电子表格,但在前 4 行和后 2 行中有一些我不想要的信息。所以我使用:

            dataSet = pd.read_excel(excelFile)
            dataSet.drop(dataSet.head(4).index,inplace=True)
            dataSet.drop(dataSet.tail(2).index,inplace=True)
            rowCount = dataSet.shape[0]
            for a in range(rowCount):
                newPatientName = dataSet.iloc[a][0]
                print(newPatientName)

通过不包括电子表格顶部和底部的信息,这可以按预期工作。但是,当我稍后在代码中执行此操作时:

            columnList = []
            for col in dataSet.columns:
                columnList.append(col)
            print(columnList)

它打印:

['Fab Tracking (w Completed) Report', 'Unnamed: 1', 'Unnamed: 2', 'Unnamed: 3', 'Unnamed: 4', 'Unnamed: 5', 'Unnamed: 6', 'Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9']

Fab Tracking (w Completed) Report'我认为我在上面删除的行在哪里?列没有名字......我在这里错过了什么。

我也试过dataSet = dataSet[4:-2]

电子表格的图像: 在此处输入图像描述

编辑: 在下面有人询问我是否删除列而不是行之后,我发布了电子表格的图片。如果我在 excel 中手动编辑此工作表并删除前 4 行,然后运行:dataSet.columns它将给我列标题的名称。但我不想每次都打开电子表格来执行此操作。我希望 pandas 删除或忽略前 4,以便我可以获得标题的名称

标签: pythonpandas

解决方案


在 pandas 中,列名或标题是持久的,并且在删除/附加行时不会更改。如果您试图完全忽略文件的前 4 行,您可以像这样使用 pd.read_excel 中的 skiprows 参数 -

pd.read_excel(excelFile, skiprows=4)

然后使用 - 删除最后 2 行

dataSet = dataSet[:-2]

columnList=list(dataSet.columns)如果您尝试创建列名列表,它也可以更快地使用。


推荐阅读