从生成器表达式输出pd.DataFrame

时间:2019-02-20 16:54:23

标签: python pandas

是否可以从生成器表达式返回完整的Pandas DataFrame作为输出? 我在下面做了一个简化的小数据示例,但是寻求的解决方案应该适用于大数据。当然,可以以不同的方式连接多个DataFrame(例如用于附加),本示例仅用于理解生成器表达式如何与DataFrame一起使用。

import pandas as pd
df1 = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))

dat1 = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))

def genso(dat1):
    dat2 = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))
    for i in range(10):
        dat1 = pd.concat([dat1, dat2])
    yield dat1

g = genso(df1)

现在可以遍历生成器对象,它将提供打印输出,而不是DataFrame。所以问题是,如何将其转换为pd.DataFrame?

1 个答案:

答案 0 :(得分:2)

是的,我想是这样

尝试:

df = next(g)

type(df)
pandas.core.frame.DataFrame

df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 110 entries, 0 to 9
Data columns (total 4 columns):
A    110 non-null float64
B    110 non-null float64
C    110 non-null float64
D    110 non-null float64
dtypes: float64(4)
memory usage: 4.3 KB