检查 pandas 数据帧是否已传递给函数
Check if pandas dataframe was passed to function
我有一个这样定义的函数:
def demand_cleaning(df=None, location, output,_input,tables):
我想测试一下 df
是否通过(df
是 pandas DataFrame
)
如果df
没有通过我想做类似
的事情
if df is None:
df = pd.read_pickle(tables + "Demand Raw")
但是这个测试现在不起作用。我明白了
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
你可以这样说:
if df is None:
如果要检查数据帧是否包含数据检查:
if not df.empty:
尝试直接执行类型检查:
if isinstance(df, pandas.DataFrame):
pass
请记住,isinstance
的第二个参数取决于您导入 pandas 的名称空间。这通常是 pd
,这会产生 pd.DataFrame
。
看看 this article.
像这样的事情会做:
def g(var):
if isinstance(var, pd.DataFrame):
print("good to go")
else:
print("Nah!")
print(type(var))
a = None
b = pd.DataFrame()
print(g(a))
"""
output>>>
Nah!
<type 'NoneType'>
"""
print(g(b))
"""
output>>>
good to go
"""
我有一个这样定义的函数:
def demand_cleaning(df=None, location, output,_input,tables):
我想测试一下 df
是否通过(df
是 pandas DataFrame
)
如果df
没有通过我想做类似
if df is None:
df = pd.read_pickle(tables + "Demand Raw")
但是这个测试现在不起作用。我明白了
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
你可以这样说:
if df is None:
如果要检查数据帧是否包含数据检查:
if not df.empty:
尝试直接执行类型检查:
if isinstance(df, pandas.DataFrame):
pass
请记住,isinstance
的第二个参数取决于您导入 pandas 的名称空间。这通常是 pd
,这会产生 pd.DataFrame
。
看看 this article.
像这样的事情会做:
def g(var):
if isinstance(var, pd.DataFrame):
print("good to go")
else:
print("Nah!")
print(type(var))
a = None
b = pd.DataFrame()
print(g(a))
"""
output>>>
Nah!
<type 'NoneType'>
"""
print(g(b))
"""
output>>>
good to go
"""