python pandas:如何在循环中返回一个空数据帧?

时间:2014-05-15 12:42:39

标签: 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!

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

谢谢!

1 个答案:

答案 0 :(得分:2)

由于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]