为了聚合 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/