我有一个包含NBA球员和球位置的大型数据集,我希望将其分成11个数据集,每个数据集将包含球,player1,player2,player3,player4 ... player10的位置。
所以我将最初基于索引的数据集划分为:
ball_set = training_set.iloc[0::11,:]
player1_set = training_set.iloc[1::11,:]
player2_set = training_set.iloc[2::11,:]
player3_set = training_set.iloc[3::11,:]
player4_set = training_set.iloc[4::11,:]
player5_set = training_set.iloc[5::11,:]
player6_set = training_set.iloc[6::11,:]
player7_set = training_set.iloc[7::11,:]
player8_set = training_set.iloc[8::11,:]
player9_set = training_set.iloc[9::11,:]
player10_set = training_set.iloc[10::11,:]
但后来我意识到,无论出于何种原因,一些球位置都会丢失,所以在第一次失球后这种分割数据集的方式不起作用。
我试图通过使用列名来实现,但问题是我最终得到的球员位置多于球位置。
所以我的问题是:如何修改数据集:
每当我发现球位置丢失时,我将最后一个已知位置添加到新位置的位置,然后我修改索引,这样每个第n个元素采样继续工作。数据集非常大,我无法想到一种不会太耗时的方法。很抱歉解释问题很困难。
print(ball.head(10))
team_id player_id x_loc y_loc radius game_clock shot_clock \
0 -1 -1 75.32556 5.98097 5.49124 706.62 8.92
11 -1 -1 76.07296 5.46993 5.15024 706.58 8.90
22 -1 -1 76.81954 5.19475 4.95356 706.54 8.88
33 -1 -1 77.57706 5.46789 4.93948 706.49 8.86
44 -1 -1 78.24726 5.89358 4.89680 706.45 8.85
55 -1 -1 78.98622 6.39669 4.75053 706.41 8.83
66 -1 -1 79.75325 6.93706 4.44634 706.37 8.81
77 -1 -1 80.55254 7.51884 3.98987 706.33 8.80
88 -1 -1 81.38831 8.14618 3.38672 706.29 8.78
99 -1 -1 82.26478 8.82324 2.64252 706.25 8.76
quarter game_id event_id
0 1 21500491 1
11 1 21500491 1
22 1 21500491 1
33 1 21500491 1
44 1 21500491 1
55 1 21500491 1
66 1 21500491 1
77 1 21500491 1
88 1 21500491 1
99 1 21500491 1
在某个索引缺失数据开始出现后,每第11个值不再是球。
Dataframe看起来像这样:
team_id player_id x_loc y_loc radius game_clock \
0 -1 -1 75.32556 5.98097 5.49124 706.62
1 1610612748 2547 63.70920 34.45719 0.00000 706.62
2 1610612748 2736 81.69544 11.30207 0.00000 706.62
3 1610612748 201609 70.29572 7.46278 0.00000 706.62
4 1610612748 202355 83.90212 34.19776 0.00000 706.62
5 1610612748 204020 87.10757 47.84178 0.00000 706.62
6 1610612742 1717 73.23341 27.90537 0.00000 706.62
7 1610612742 200826 84.12922 31.64608 0.00000 706.62
8 1610612742 2585 84.09753 28.95075 0.00000 706.62
9 1610612742 202083 82.54378 13.31071 0.00000 706.62
10 1610612742 202718 74.64288 11.58677 0.00000 706.62
11 -1 -1 76.07296 5.46993 5.15024 706.58
12 1610612748 2547 63.76077 34.51266 0.00000 706.58
13 1610612748 2736 81.80397 11.24143 0.00000 706.58
14 1610612748 201609 70.21050 7.43250 0.00000 706.58
15 1610612748 202355 83.91800 34.18653 0.00000 706.58
16 1610612748 204020 87.11137 47.84143 0.00000 706.58
17 1610612742 1717 73.24258 27.92304 0.00000 706.58
18 1610612742 200826 84.13441 31.70566 0.00000 706.58
19 1610612742 2585 84.04476 28.94076 0.00000 706.58
20 1610612742 202083 82.61667 13.24250 0.00000 706.58
shot_clock quarter game_id event_id
0 8.92 1 21500491 1
1 8.92 1 21500491 1
2 8.92 1 21500491 1
3 8.92 1 21500491 1
4 8.92 1 21500491 1
5 8.92 1 21500491 1
6 8.92 1 21500491 1
7 8.92 1 21500491 1
8 8.92 1 21500491 1
9 8.92 1 21500491 1
10 8.92 1 21500491 1
11 8.90 1 21500491 1
12 8.90 1 21500491 1
13 8.90 1 21500491 1
14 8.90 1 21500491 1
15 8.90 1 21500491 1
16 8.90 1 21500491 1
17 8.90 1 21500491 1
18 8.90 1 21500491 1
19 8.90 1 21500491 1
20 8.90 1 21500491 1