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

3 投票
1 回答
4759 浏览
提问于 2025-04-18 06:39

为了把一堆csv文件里的内容合并起来,我通常会这样做:

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


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

我觉得这个方法很不错。

不过,当出现问题,比如找不到某个函数的时候,我需要返回一个空的临时数据框!

在这种情况下,我该怎么返回一个空的数据框呢?有没有人能分享一下经验?

谢谢!

1 个回答

5

因为 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]

撰写回答