【问题标题】:Analyse the result of one tennis player from dataset从数据集中分析一名网球运动员的结果
【发布时间】:2020-09-29 18:01:47
【问题描述】:

我有一个网球比赛的熊猫数据集,每场比赛都有获胜者和失败者:

match   match_date  winner  loser   score
match1  06June      player1 player2  6-2
match2  08June      player3 player1  6-4
match3  07June      player1 player4  5-6
match4  12June      player4 player3  6-7

数据集是基于匹配创建的,我需要从这个为每个玩家创建新的数据集:

player_name  previous_match  result  score
player1      06June           won     6-2
player1      08June           lost    6-4
player1      07June           lost    5-6

问题是每个玩家都可以出现在获胜者列或失败者列中,并且玩家数量很大。

【问题讨论】:

标签: python pandas dataset


【解决方案1】:

你可以使用melt:

melted_df  = pd.melt(df, id_vars=['match',"match_date","score"], value_vars=['winner',"loser"], var_name="result", value_name="player_name")
melted_df

输出:

match   match_date  score   result  player_name
0   match1  06June  6-2 winner  player1
1   match2  08June  6-4 winner  player3
2   match3  07June  5-6 winner  player1
3   match4  12June  6-7 winner  player4
4   match1  06June  6-2 loser   player2
5   match2  08June  6-4 loser   player1
6   match3  07June  5-6 loser   player4
7   match4  12June  6-7 loser   player3

然后你就可以排序了:

melted_df.sort_values(by="player_name")

输出:

   match  match_date score  result  player_name
0   match1  06June    6-2   winner  player1
2   match3  07June    5-6   winner  player1
5   match2  08June    6-4   loser   player1
4   match1  06June    6-2   loser   player2
1   match2  08June    6-4   winner  player3
7   match4  12June    6-7   loser   player3
3   match4  12June    6-7   winner  player4
6   match3  07June    5-6   loser   player4

【讨论】:

  • 谢谢,太好了,我可以创建一个新数据集,其中每个玩家每行?
  • list_dataframes 每个玩家包含一个数据帧。这是你想要的吗?或者你想要一个包含所有玩家的单个数据框(每行一个玩家,但你可以在不同的行中找到同一个玩家)?
  • 是的,我想要一个包含所有玩家的单个数据框(每行一个玩家,但您可以在不同的行中找到同一个玩家)
  • 我的意思是每个玩家行都在一行中包含历史数据,例如 player1 的一行包含所有以前的结果(因此新数据集每行将包含每个玩家)...可能吗?跨度>
  • 这似乎与您原来的问题不同。所以你的意思是在行中添加多个包含匹配日期和分数的列?我很抱歉,但很难理解你想要什么。请使用所需的确切输出更新问题。或者问一个新问题,如果它与上面的不同(这是need to create new dataframe for each player
猜你喜欢
  • 1970-01-01
  • 2020-09-29
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多