python pandas: 如何在循环中返回一个空数据框?
为了把一堆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]