【问题标题】:Convert dataframe into pandas.io.parsers.TextFileReader object (chunks)将数据框转换为 pandas.io.parsers.TextFileReader 对象(块)
【发布时间】:2019-06-07 13:58:53
【问题描述】:

我已经看到很多关于如何将数据帧分割成不同块的问题。我想知道如何将数据框转换为与将 csv 文件加载到具有 chunksize 参数的数据框时所获得的对象完全相同的对象,即

df = pd.read_csv(file_path, chunksize=1e5)
type(df)
>> pandas.io.parsers.TextFileReader

我想从包含不同块中的数据帧数据的数据帧中重新创建一个相同的 TextFileReader 对象。关于如何做到这一点的任何想法?

【问题讨论】:

    标签: python python-3.x pandas dataframe chunks


    【解决方案1】:

    带有文本流对象StringIOpd.read_csv函数:

    (下面的df 包含一个示例数据框)

    In [216]: df
    Out[216]: 
         Date  Name  Wage
    0  5/1/19   Joe  $100
    1  5/1/19   Sam  $120
    2  5/1/19  Kate   $30
    3  5/2/19   Joe  $120
    4  5/2/19   Sam  $134
    5  5/2/19  Kate   $56
    6  5/3/19   Joe   $89
    7  5/3/19   Sam   $90
    8  5/3/19  Kate  $231
    
    In [217]: from pandas.compat import StringIO
    
    In [218]: reader = pd.read_csv(StringIO(df.to_csv()), iterator=True)
    
    In [219]: type(reader)
    Out[219]: pandas.io.parsers.TextFileReader
    
    In [220]: reader.get_chunk(3)
    Out[220]: 
       Unnamed: 0    Date  Name  Wage
    0           0  5/1/19   Joe  $100
    1           1  5/1/19   Sam  $120
    2           2  5/1/19  Kate   $30
    

    当然,您可以通过chunksize 选项指定具体的块大小。

    iterator : boolean, default False
    

    返回 TextFileReader 对象以进行迭代或获取块 get_chunk().

    chunksize : int, default None
    

    返回 TextFileReader 对象进行迭代。

    http://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#io-chunking

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 2021-11-18
      • 2022-01-15
      • 1970-01-01
      • 2020-03-27
      • 2019-03-05
      • 1970-01-01
      • 2015-10-05
      相关资源
      最近更新 更多