有条件地子集数据帧

时间:2019-07-23 17:39:20

标签: python pandas dataframe

也欢迎使用任何更Python化的分组方式的建议

我有一个数据框“ golfdf”,它由两列“ Teams”和“ Clubs”组成。

           Teams   Clubs
0          Aiden   Right
1          Alexa   Right
2          Alina   NaN
3          Allison Right
4          Amity   Right
5          Antoine NaN
6          Ben     NaN
...
35         Connor  Right

我正尝试将数据帧随机排列,然后将数据帧分为四个组,每个组中最少有两个,最多有三个NaN值。

我使用以下命令进行洗牌

gdf = golfdf.sample(frac=1)

然后使用以下方法将其分成四个组:

n = int(len(gdf)/9)
groups_n = np.cumsum([0, n, n, n, n, n, n, n, n, len(gdf)-(8*n)])
d = {}
for i in range(9):
    d[i+1] = gdf.iloc[groups_n[i]:groups_n[i+1]]

输出符合预期:

     Teams Clubs
8    Breanne NaN
5    Antoine NaN
27   Noah    NaN
16   Ellen  Left
     Teams Clubs
20   Helen   NaN
22   Keegan  NaN
28   Payton  NaN
32   Sean    NaN
...

但是我不确定如何添加一个条件来指定约束。如果我遗漏了任何相关信息,请告诉我。

谢谢!

0 个答案:

没有答案