工作中碰到了两个pandas中的小bug,而且会导致连环的错误,所以记录一下
1.假设一个dataframe(df)为空,则df.to_csv(tmpfile) 会报错 None of [xxx] in columns
因此在输出时需要先判断df是否为空
例如
df = df[df['a‘] == 0] (假设这个查询为空 多个条件查询最好写df.a 并且用把多个条件用“()”)
#判断是否为空
#这里不能写 if not df ,会报错“The truth value of a DataFrame is ambiguous”
if df.shape[0] == 0 :
return None
else:
return df
2.在上一步中我们得到了一个返回值(可能为None),假设在另一个函数中我们需要该返回值,同样需要判断,
这里也犯了几次错误。
#判断上一步的df是否为空
if not df:
会报错“The truth value of a DataFrame is ambiguous”
if df.shape[0]==0:
会报错none has no attribute shape
"""正确判断为"""
if df is none:
return none
else:
df = xxxxx(后续步骤)