我現在有10多個dataframe 合并成一個Alldata(dataframe) 然後放入html.但是有的datafrmae有时会因为访问ip原因不能取得数据,那么放入Alldata 就会出错,我用try except pass 强制执行不影响程序运行,但到最后输入html时就会程序报错 请问怎样解决
try:
ALL_data=pd.concat([HQ_HC02,HQ_HC04,HQ_HC07,HQ_HC13,HQ_HC15])
except e
pass
s.append(AllC_data.to_html(escape=False,index = False))
error messages:
AllC_data name 'HQ_HC13' is not defined
AllC_data name 'AllC_data' is not defined
NameError: name 'AllC_data' is not defined
报错说了,里面的一些数据没有定义。
请对未定义的字段定义默认值
你可用一个判断语句,来获取有数据的dataframe,再合并,同时注意在拼接或合并时要指定拼接方式和方向
我在单独的dataframe 已经做了判断
if HQ_HC13.empty:
HQ_HC13['Shop','br_date']=HQ_HC13['Shop','br_date'].fillna('Nan')
在Dataframe拼接后也做了判断,但是系统运行到concat拼接时 ,发现里面dataframe有空的就直接报错 不执行了
AllC_data['No','Shop','br_date','Shop_Cunt','HQ_Cunt','Diff (Shop-HQ)']=AllC_data['No','Shop','br_date','Shop_Cunt','HQ_Cunt','Diff (Shop-HQ)'].fillna('Nan')
其实原因就时我连接一个db 如果ping不通 那么就会强制跳出执行下一个 那么这个df 在后面定义的alldata[]连接中已经有定义,结果就出错 ,如果不写进alldata那么以后ping通 就少了一个数据 ,比较头痛