如何在检查空的pandas数据框时引发自定义异常?

1 投票
1 回答
39 浏览
提问于 2025-04-14 18:04

这个函数 check_dataframe 会在 pandas 的数据框(dataframe)为空的时候抛出一个自定义的异常(错误)。我想知道有没有办法把 'try raise' 这个部分放到函数内部呢?

import pandas as pd

class EmptyDataFrameError(Exception):
    pass

def check_dataframe(dataframe):

    if dataframe.empty:
        raise EmptyDataFrameError("DataFrame is empty")
    else:
        print("DataFrame is not empty")

# Example usage:
try:
    df = pd.DataFrame({'A': []})
    check_dataframe(df)
except EmptyDataFrameError as e:
    print(e)

我原本想把这个函数 check_dataframe 写成这样:

def check_dataframe(dataframe):

    try:
        if len(dataframe) == 0:
            raise EmptyDataFrameError("DataFrame is empty")
    except:
        print("DataFrame is ok -process")

1 个回答

2

你可以把 check_dataframe 这个函数改一下,把错误处理的部分放到函数里面。下面是更新后的函数版本:

import pandas as pd

class EmptyDataFrameError(Exception):
    pass

def check_dataframe(dataframe):
    try:
        if dataframe.empty:
            raise EmptyDataFrameError("DataFrame is empty")
        else:
            print("DataFrame is not empty")
    except EmptyDataFrameError as e:
        print(e)
    except Exception as ex:
        print(f"An unexpected error occurred: {ex}")

# Example usage:
df = pd.DataFrame({'A': []})
check_dataframe(df)

这样一来,check_dataframe 函数就能自己处理检查数据框是否为空的逻辑,如果需要的话,还能抛出自定义的异常。使用的例子还是和之前一样。

撰写回答