Splitting dataframe into multiple dataframes

后端 未结 11 1349
南方客
南方客 2020-11-22 01:16

I have a very large dataframe (around 1 million rows) with data from an experiment (60 respondents).

I would like to split the dataframe into 60 dataframes (a datafra

11条回答
  •  清歌不尽
    2020-11-22 01:24

    You can convert groupby object to tuples and then to dict:

    df = pd.DataFrame({'Name':list('aabbef'),
                       'A':[4,5,4,5,5,4],
                       'B':[7,8,9,4,2,3],
                       'C':[1,3,5,7,1,0]}, columns = ['Name','A','B','C'])
    
    print (df)
      Name  A  B  C
    0    a  4  7  1
    1    a  5  8  3
    2    b  4  9  5
    3    b  5  4  7
    4    e  5  2  1
    5    f  4  3  0
    
    d = dict(tuple(df.groupby('Name')))
    print (d)
    {'b':   Name  A  B  C
    2    b  4  9  5
    3    b  5  4  7, 'e':   Name  A  B  C
    4    e  5  2  1, 'a':   Name  A  B  C
    0    a  4  7  1
    1    a  5  8  3, 'f':   Name  A  B  C
    5    f  4  3  0}
    
    print (d['a'])
      Name  A  B  C
    0    a  4  7  1
    1    a  5  8  3
    

    It is not recommended, but possible create DataFrames by groups:

    for i, g in df.groupby('Name'):
        globals()['df_' + str(i)] =  g
    
    print (df_a)
      Name  A  B  C
    0    a  4  7  1
    1    a  5  8  3
    

提交回复
热议问题