How to split dataframe in pandas

前端 未结 1 512
醉梦人生
醉梦人生 2020-12-21 15:34

I have dataframe below

A B C
0 a h
0 b i
0 c j
1 d k
1 e l
2 f m
2 g n

I would like to split dataframe by df.A

A B C
0 a h
         


        
相关标签:
1条回答
  • 2020-12-21 15:44

    You can create dictionary of DataFrames by dict comprehension:

    dfs = {k:v for k, v in df.groupby('A')}
    print (dfs)
    
    {0:    A  B  C
    0  0  a  h
    1  0  b  i
    2  0  c  j, 1:    A  B  C
    3  1  d  k
    4  1  e  l, 2:    A  B  C
    5  2  f  m
    6  2  g  n}
    
    print (dfs[0])
       A  B  C
    0  0  a  h
    1  0  b  i
    2  0  c  j
    
    print (dfs[1])
       A  B  C
    3  1  d  k
    4  1  e  l
    

    If necessary you can reset index:

    dfs = {k:v.reset_index(drop=True) for k, v in df.groupby('A')}
    print (dfs)
    {0:    A  B  C
    0  0  a  h
    1  0  b  i
    2  0  c  j, 1:    A  B  C
    0  1  d  k
    1  1  e  l, 2:    A  B  C
    0  2  f  m
    1  2  g  n}
    
    print (dfs[1])
       A  B  C
    0  1  d  k
    1  1  e  l
    
    print (dfs[2])
       A  B  C
    0  2  f  m
    1  2  g  n
    
    0 讨论(0)
提交回复
热议问题