【问题标题】:Split a data frame into six equal parts based on number of rows without knowing the number of rows - pandas在不知道行数的情况下,根据行数将数据框分成六个相等的部分 - 熊猫
【发布时间】:2021-07-25 02:57:54
【问题描述】:

我有一个如下所示的 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

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

ID   Job   Salary
1    A     100
2    B     200
3    B     20

df2:

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

df3:

ID   Job   Salary
7    A     200
8    B     150

df4:

ID   Job   Salary
9    C     110
10   B     200

df5:

ID   Job   Salary
11   B     220
12   A     150

df6:

ID   Job   Salary
13   C     20
14   B     50

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

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

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    你可以使用np.array_split():

    dfs = np.array_split(df, 6)
    
    for index, df in enumerate(dfs):
        df.to_csv(f'df{index+1}.csv')
    
    >>> 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]
    

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 2022-12-05
      • 2014-04-23
      • 2021-08-20
      • 2013-02-28
      • 2022-01-25
      • 2022-07-19
      • 2020-02-19
      相关资源
      最近更新 更多