【问题标题】:Split a pandas dataframe every 5 rows [duplicate]每5行拆分一个熊猫数据框[重复]
【发布时间】:2020-12-19 13:49:05
【问题描述】:

我有一个数据框 df :

df
====================================
|            COLUMN_Y              |
====================================
|            value1                |
|            value2                |
|            value3                |
|            value4                |
|            value5                |
|            value6                |
|            value7                |
|            value8                |
|            value9                |
|            value10               |
|            value11               |
|            value12               |
|            value13               |    
|            value14               |
|            value15               |
|            value16               |
====================================

没有我想用来分割这个数据框的分组变量。我想像这样将它拆分为多个数据框,每 5 行拆分一次。例如,1002 行数据帧将被拆分为 200 个 5 行数据帧和 1 个 2 行数据帧。我该怎么做?

df1
====================================
|            COLUMN_Y              |
====================================
|            value1                |
|            value2                |
|            value3                |
|            value4                |
|            value5                |
====================================

 df2

====================================
|            COLUMN_Y              |
====================================
|            value6                |
|            value7                |
|            value8                |
|            value9                |
|            value10               |
====================================

df3
====================================
|            COLUMN_Y              |
====================================
|            value11               |
|            value12               |
|            value13               |
|            value14               |
|            value15               |
====================================

df4
====================================
|            COLUMN_Y              |
====================================
|            value16               |
====================================

【问题讨论】:

    标签: python pandas dataframe split


    【解决方案1】:

    使用索引上的楼层划分来创建你的组,然后我们可以使用DataFrame.groupby来创建不同的数据框:

    grps = df.groupby(df.index // 5)
    
    for _, dfg in grps:
        print(dfg)
    
    
      COLUMN_Y
    0   value1
    1   value2
    2   value3
    3   value4
    4   value5 
    
      COLUMN_Y
    5   value6
    6   value7
    7   value8
    8   value9
    9  value10 
    
       COLUMN_Y
    10  value11
    11  value12
    12  value13
    13  value14
    14  value15 
    
       COLUMN_Y
    15  value16 
    

    【讨论】:

    • 我喜欢这个答案,请问为什么用双 // 而不是一个 / 进行除法?谢谢!哦等等,它会返回一个int 或一个整数?
    • 当然,// 是楼层划分,/ 是常规划分,请参阅here 了解更多信息。 this链接更简洁直接
    • 酷!非常感谢!
    【解决方案2】:

    下面的代码将进行拆分,然后保存到不同的 CSV:

    split_size = 5
    dfs = [df.loc[i:i+split_size-1,:] for i in range(0, len(df),split_size)]
    for _, frame in enumerate(dfs):
        frame.to_csv('df'+str(_)+'.csv', index=False)
    

    【讨论】:

      【解决方案3】:

      试试list理解:

      listofdataframes = [df.iloc[i:i + 5] for i in range(0, len(lst), 5)]
      

      【讨论】:

        猜你喜欢
        • 2021-01-19
        • 1970-01-01
        • 1970-01-01
        • 2019-12-28
        • 2020-02-19
        • 1970-01-01
        • 2013-06-23
        • 2019-10-26
        • 1970-01-01
        相关资源
        最近更新 更多