【问题标题】:Skip initial empty rows and columns while reading in pandas在熊猫中阅读时跳过初始的空行和列
【发布时间】:2020-08-19 08:02:44
【问题描述】:

我有一个像下面这样的 excel

我必须阅读excel并进行一些操作。问题是我必须跳过空行和列。在上面的示例中,它应该只从 B3:D6 读取。但是使用下面的代码,它会考虑所有空行,如下所示

我正在使用的代码

import pandas as pd
user_input = input("Enter the path of your file: ")
user_input_sheet_master = input("Enter the Sheet name : ")
master = pd.read_excel(user_input,user_input_sheet_master)
print(master.head(5))

如何忽略空行和空列得到下面的输出

          ColA       ColB       ColC
0           10         20         30
1           23        NaN         45
2          NaN         30         50

根据我尝试使用df.dropna(how='all') 的一些研究,但它也删除了COLACOLB。我无法硬编码skiprowsskipcolumns 的值,因为它可能每次的格式都不相同。要跳过的行数和列数可能会有所不同。有时可能没有任何空行或空列。在这种情况下,无需删除任何内容。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你肯定需要使用dropna

    df = df.dropna(how='all').dropna(axis=1, how='all')
    

    编辑:

    如果我们有以下文件:

    然后使用这段代码:

    df = pd.read_excel('tst1.xlsx', header=None)
    df = df.dropna(how='all').dropna(how='all', axis=1)
    headers = df.iloc[0]
    new_df  = pd.DataFrame(df.values[1:], columns=headers)
    

    new_df 看起来如下:

    如果我们开始:

    并使用完全相同的代码,我得到:

    最后,从:

    与第一种情况相同。

    【讨论】:

    • 即使没有空单元格,它也会删除第一行:(
    • @Avinash 你能提供测试文件吗?
    • 我在我的问题中给出的相同样本只是删除了空单元格。或者我如何分享excel?
    • @Avinash 请检查编辑,如果在您的情况下仍然无法正常工作,请提供您的示例
    猜你喜欢
    • 2018-09-15
    • 2018-06-19
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2020-04-18
    • 2017-10-16
    • 1970-01-01
    • 2015-05-09
    相关资源
    最近更新 更多