如何在检查空的pandas数据框时引发自定义异常?
这个函数 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
函数就能自己处理检查数据框是否为空的逻辑,如果需要的话,还能抛出自定义的异常。使用的例子还是和之前一样。