2 回答
TA贡献1796条经验 获得超4个赞
您可以使用 df.empty
属性或检查数据帧是否为空。len(df) > 0
试试这个:
dfs = [df1, df2, df3, df4]
non_empty_dfs = [df for df in dfs if not df.empty]
df_final = reduce(lambda left,right: pd.merge(left,right, on='time', how='outer'), non_empty_dfs)
或者,您也可以将空数据帧过滤为:
non_empty_dfs = [df for df in dfs if len(df) > 0]
TA贡献1911条经验 获得超7个赞
使用pandas的数据帧空方法,过滤掉空数据帧,然后您可以连接或运行您想到的任何合并操作:
df4 = pd.DataFrame({'A':[]}) #empty dataframe
df1 = pd.DataFrame({'B':[2]})
df2 = pd.DataFrame({'C':[3]})
df3 = pd.DataFrame({'D':[4]})
dfs = [df1,df2,df3,df4]
#concat
#u can do other operations since u have gotten rid of the empty dataframe
pd.concat([df for df in dfs if not df.empty],axis=1)
B C D
0 2 3 4
添加回答
举报