我可以避免连接空数据帧的 ValueError 吗?
Posted
技术标签:
【中文标题】我可以避免连接空数据帧的 ValueError 吗?【英文标题】:Can I avoid a ValueError concatenating empty dataframes? 【发布时间】:2022-01-09 19:45:21 【问题描述】:我有df = pd.concat(dict_of_df, axis=0)
,有时[很少] 字典中的所有df
可能都是空的,在这种情况下,我希望 Pandas 愉快地返回一个空数据帧。但相反,我得到了一个 ValueError。
我可以在调用 concat 之前编写一个循环来检查每个 df 的长度,但我不想总是这样做,所以目前我只是将 concat 嵌入到 try/except... 这不会真的很高兴,因为如果有一个“真正的” ValueError 我想知道它。那么我可以做一个 try/except 循环,如果抛出异常,然后计算所有的 dicts 和......呃。这太疯狂了。
还有更干净的吗?谢谢。
【问题讨论】:
你能详细说明一下吗?我正在尝试重现该问题,但无法获得ValueError
;确实,我得到了一个空数据框。
天哪,你是对的。当我创建一个测试数据集时,这正是我现在正在发生的事情。
啊哈....如果 a = None, b= None,则 c = pd.concat([a,b]) 失败
【参考方案1】:
我没有这个问题:
pd.concat([pd.DataFrame()] * 3, axis=0)
你用的是什么版本的熊猫?
【讨论】:
【参考方案2】:对不起,我要撤回这个问题。我现在意识到
pd.concat([None,None])
产生 ValueError,而如上所述 pd.concat(pd.DataFrame(),pd.DataFrame())
完全符合您的期望。 pd.concat([None,pd.DataFrame()])
也很好。所以我抱怨 concat 是不公平的。我需要停止提供日常不存在的数据集!
感谢反馈
【讨论】:
以上是关于我可以避免连接空数据帧的 ValueError 吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 tensorflow 中的“ValueError:空训练数据”错误
TFIDF Vectorizer 抛出 ValueError:空词汇