我有这个数据帧,df_match
:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 match_id 680 non-null int64
1 league_id 680 non-null object
2 from_home_player_1_to_home_player_11 680 non-null object
其中from_home_player_1_to_home_player_11
列上的每一行保存一个元组列表,如下所示:
df_match.sample(1)
:
...
None match_id league_id from_home_player_1_to_home_player_11
167 243221 26 [(79066, GKP), (82634, MID), (79578, FWD), (34765, DEF), (23476, WING), (32456, MID),(55897, DEF),(45675, MID),(32345, FWD),(45765,FWD),(12354, WING)]
目标
现在我想为场上的每个球员设置X/Y坐标(为了简化,这里只使用坐标X),每场比赛(行)
from_home_player_1_to_home_player_11
上的每个玩家都需要一个X值。所以我需要一个新创建的X列列表,如下所示:
X_columns = ["home_player_X1", "home_player_X2", "home_player_X3","home_player_X4", "home_player_X5",
"home_player_X6", "home_player_X7", "home_player_X8", "home_player_X9","home_player_X10", "home_player_X11",
最后,每个位置都有一组任意的X值。(当有多个选项时,可以是任意一个,随机选择)
GKP = 1
DEF = [3,4]
WING = [2,5]
MID = [6,7,8]
FWD = [9,10,11]
我的目标是绘制-在每一行,玩家的位置到一个X坐标,最后是:
None match_id league_id from_away_player_1_to_away_player_11 /
167 243221 26 [(79066, GKP), (82634, MID), (79578, FWD), (34765, DEF), (23476, WING), (32456, MID),(55897, DEF),(45675, MID),(32345, FWD),(45765,FWD),(12354, WING)] /
home_player_X1 home_player_X2 home_player_X3 home_player_X4
1 7 10 3
home_player_X5 home_player_X6 home_player_X7 home_player_X8
5 7 4 7
home_player_X9 home_player_X10 home_player_X11
10 10 2
如何根据熊猫的位置/值条件进行映射?
我开始考虑通过以下方式迭代数据帧:
for index, value in df_match.iterrows():
pos = value.from_home_player_1_to_home_player_11[1][1]
print (index, value)
但我还没走多远
类似于您的数据:
建立职位映射,注意所有都是列表:
应用字典中的查找,选择随机选项,然后放大到各个列。重命名列:
请注意,如果找不到键,它会将
-1
放在该位置。然后pd.concat()
将它们放在一起:相关问题 更多 >
编程相关推荐