【问题标题】:Output a pd.DataFrame from a generator expression从生成器表达式中输出 pd.DataFrame
【发布时间】:2019-02-21 01:06:33
【问题描述】:

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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    是的,我想是的……

    试试:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多