python Pandas : how to return an empty dataframe in a loop?

标签 python pandas functional-programming

为了聚合 csv 文件列表的内容,我通常这样做:

def getContent(fn):
    // do some thing with fn and generate a tempDataFrame
    return tempDataFrame


agg = pd.concat([getContent(x) for x in myListOfFiles])

我觉得这是一个非常巧妙的解决方案。

但是,当出现问题并且我找不到 fn 等时,我需要返回一个空的 tempDataFrame!

在这种情况下如何返回空数据框?谁能分享一些经验吗?

谢谢!

最佳答案

由于 pd.concat 忽略任何 None 对象,您只需让函数 getContent 返回 None

这种方法的唯一问题是,如果所有项目都是None,则会抛出异常。如果您想防止这种情况发生,您可以创建一个空数据框作为第一个参数,其中包含所需的列:

>>> columns = ['col1', 'col2', 'col3']
>>> pd.concat([pd.DataFrame({k: [] for k in columns}), None, None])
    Empty DataFrame
Columns: [col1, col2, col3]
Index: []

[0 rows x 3 columns]

关于 python Pandas : how to return an empty dataframe in a loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678571/

相关文章:

python - 从列表列表中获取不连续的列

python - 使用最后一个元素填充嵌套列表列表中的缺失值

python - 如何与条形图一起显示百分比

C++ 演示函数同时使用一个 const 参数,它是一个指针,这是为什么?

ruby - 更深入地解释ruby中的reduce/inject方法

python - App Engine 开发服务器 : bad runtime process port ['' ] No module named google. appengine.dist27.threading

python - Serializer 上的 SerializerClass 字段从主键保存

python - 如何找到一个日期和另一个日期之间的差异(如果第二个未完全插入到dataFrame中)

python - 一些 float 值在 pandas Dataframe 中没有转换为 int

javascript - Lodash:从对象中选择值列表到保证顺序的数组中