将数据集除以行

时间:2019-08-29 18:25:49

标签: python pandas

给定的数据帧:

df = pd.DataFrame({'a':[1,2,4,5,6,8],
                  'b':[5,6,4,8,9,6],
                  'c':[6,3,3,7,8,4],
                  'd':[1,2,3,8,7,3],
                  'e':[3,2,4,4,6,2],
                  'f':[3,2,6,4,5,5]})

我想将df分成几部分(分为2,3,4..n部分)

所需的输出:

df1 =

    a   b   c   d   e   f

0   1   5   6   1   3   3
1   2   6   3   2   2   2

df2 =

    a   b   c   d   e   f

2   4   4   3   3   4   6
3   5   8   7   8   4   4

df3 =

    a   b   c   d   e   f

4   6   9   8   7   6   5
5   8   6   4   3   2   5

已更新

实际数据的可分大小不相等!

真实数据4351 rows × 3 columns

2 个答案:

答案 0 :(得分:1)

使用qcut进行拆分。以后如何存储取决于您自己

import pandas as pd
gp = df.groupby(pd.qcut(range(df.shape[0]), 3))  # N = 3

d = {f'df{i+1}': x[1] for i, x in enumerate(gp)}

d['df1']
#   a  b  c  d  e  f
#0  1  5  6  1  3  3
#1  2  6  3  2  2  2

答案 1 :(得分:0)

假设您的DataFrame可以平均分为n个块:

n = 3
dfs = [df.loc[i] for i in np.split(df.index, n)]

dfs是一个包含3个数据帧的列表。