使用熊猫在Excel中删除标题行

时间:2018-10-08 10:18:16

标签: excel python-3.x pandas

我有一个带有合并标头的Excel文件,我使用熊猫将其读为数据框。 pd.read_excel()之后看起来像这样:

Unnamed: 0     Pair    Unnamed: 1      Type      ...  Unnamed: 23
cabinet_name   group     pair          caller_id ...  result
value1         value1    value1        value1    ...  value1
value2         value2    value2        value2    ...  value2

所以就像我有两个标题行。一个是未命名的行,另一个是我想要的标题行。

这是我想要的输出:

cabinet_name   group     pair          caller_id ...  result
value1         value1    value1        value1    ...  value1
value2         value2    value2        value2    ...  value2

我正在尝试用Unnamed删除

df.drop(df.index[[0]])

,并在header=None中使用pd.read_excel('file.xlsx, header=None)'

但是我发现的所有内容都没有返回预期的输出。我搜索了如何使用Unnamed删除,但发现的全部是删除

我也尝试过

df.drop(df.head(0))

但它返回了我:

KeyError: '[\'Unnamed: 0\' \'Pair'\ ... \'Unnamed: 23\']'

有什么最好的方法吗?

2 个答案:

答案 0 :(得分:1)

我相信您需要跳过参数skiprows=1header=1的第一行,然后删除仅NaN的所有列:

df = (pd.read_excel('UF_AGT702-M.xlsx', skiprows=2, sheetname='Report')
        .dropna(how='all', axis=1))

答案 1 :(得分:0)

下面以excel文件格式为例。

enter image description here

要从数据文件中排除页脚和标头信息,可以对前者使用header / skiprows参数,对后者使用skipfooter参数。这是使用它的MWE:

import pandas as pd

energy = pd.read_excel('your_excel_file.xls', header=9, skipfooter=8)
  

标题:int,int列表,默认为0   用于解析的DataFrame的列标签的行(索引为0)。如果传递整数列表,则这些行位置将合并到一个MultiIndex中。如果没有标题,则使用无。

     

skipfooter :类似于列表   末尾要跳过的行(0索引)。

请查看最新的read_excel文档以获取更多详细信息。