pandas 基于重复索引数据帧创建多个数据帧

Jim*_*erg 5 python dataframe python-3.x pandas

如果我有一个在索引中有重复的数据帧,我将如何创建一组索引中没有重复的数据帧?

更准确地说,给定数据框:

   a  b
1  1  6
1  2  7
2  3  8
2  4  9
2  5  0
Run Code Online (Sandbox Code Playgroud)

我想要一个数据框列表作为输出:

   a  b
1  1  6
2  3  8


   a  b
1  2  7
2  4  9


   a  b
2  5  0
Run Code Online (Sandbox Code Playgroud)

这需要根据重复的数量根据需要扩展到尽可能多的数据帧。

Chr*_*ris 1

另一种方法是使用pd.DataFrame.groupby.nth

import numpy as np

g = df.groupby(df.index)
cnt = np.bincount(df.index).max()
dfs = [g.nth(i) for i in range(cnt)]
Run Code Online (Sandbox Code Playgroud)

输出:

[  a  b
1  1  6
2  3  8,    
   a  b
1  2  7
2  4  9,
   a  b
2  5  0]
Run Code Online (Sandbox Code Playgroud)