【问题标题】:Can I avoid a ValueError concatenating empty dataframes?我可以避免连接空数据帧的 ValueError 吗?
【发布时间】: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]) 失败

标签: python pandas concatenation


【解决方案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 是不公平的。我需要停止提供日常不存在的数据集!

    感谢反馈

    【讨论】:

      猜你喜欢
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 2020-12-06
      • 2019-12-01
      相关资源
      最近更新 更多