根据行数将数据框分成六个相等的部分,而不知道行数 - pandas

Dan*_*ish 2 python dataframe pandas

我有一个 df ,如下所示。

df:

ID   Job   Salary
1    A     100
2    B     200
3    B     20
4    C     150
5    A     500
6    A     600
7    A     200
8    B     150
9    C     110
10   B     200
11   B     220
12   A     150
13   C     20
14   B     50
Run Code Online (Sandbox Code Playgroud)

我想根据行数将 df 分成 6 个相等的部分。预期输出 df1:

ID   Job   Salary
1    A     100
2    B     200
3    B     20
Run Code Online (Sandbox Code Playgroud)

df2:

ID   Job   Salary
4    C     150
5    A     500
6    A     600
Run Code Online (Sandbox Code Playgroud)

df3:

ID   Job   Salary
7    A     200
8    B     150
Run Code Online (Sandbox Code Playgroud)

df4:

ID   Job   Salary
9    C     110
10   B     200
Run Code Online (Sandbox Code Playgroud)

df5:

ID   Job   Salary
11   B     220
12   A     150
Run Code Online (Sandbox Code Playgroud)

df6:

ID   Job   Salary
13   C     20
14   B     50
Run Code Online (Sandbox Code Playgroud)

注意:由于有 14 行,因此前两个 dfs 可以有 3 行,其余 4 个 dfs 应该有 2 行。

我想将所有 dfs 动态保存为 csv

tdy*_*tdy 11

您可以使用np.array_split()

dfs = np.array_split(df, 6)

for index, df in enumerate(dfs):
    df.to_csv(f'df{index+1}.csv')
Run Code Online (Sandbox Code Playgroud)
>>> print(dfs)

[   ID Job  Salary
 0   1   A     100
 1   2   B     200
 2   3   B      20,

    ID Job  Salary
 3   4   C     150
 4   5   A     500
 5   6   A     600,

    ID Job  Salary
 6   7   A     200
 7   8   B     150,

    ID Job  Salary
 8   9   C     110
 9  10   B     200,

     ID Job  Salary
 10  11   B     220
 11  12   A     150,

     ID Job  Salary
 12  13   C      20
 13  14   B      50]
Run Code Online (Sandbox Code Playgroud)