基于可互换出现在两列中的值聚合数据?
Posted
技术标签:
【中文标题】基于可互换出现在两列中的值聚合数据?【英文标题】:Aggregate data based on values appearing in two columns interchangeably? 【发布时间】:2021-02-20 06:54:04 【问题描述】: home_team_name away_team_name home_ppg_per_odds_pre_game away_ppg_per_odds_pre_game
0 Manchester United Tottenham Hotspur 3.310000 4.840000
1 AFC Bournemouth Aston Villa 0.666667 3.230000
2 Norwich City Crystal Palace 0.666667 13.820000
3 Leicester City Sunderland 4.733333 3.330000
4 Everton Watford 0.583333 2.386667
5 Chelsea Manchester United 1.890000 3.330000
home_ppg_per_odds_pre_game
和 away_ppg_per_odds_pre_game
基本上是相同的指标。前者代表主队的这个指标的值,而后者代表客队的这个指标。我想要每支球队的这个指标的平均值,无论球队是在主场还是客场比赛。在示例 df 中,您将 Manchester United 作为 home_team_name 在 0 中,作为 away_team_name 在 5 中。我想要包含所有这些示例的 Manchester United 的平均值。
df.groupby("home_team_name")["home_ppg_per_odds_pre_game"].mean()
这只会给我带来球队主场比赛的机会,但我想要主场和客场。
【问题讨论】:
【参考方案1】:由于这两个指标相同,您可以附加主队和客队指标,如下所示:
data_df = pd.concat([df.loc[:,('home_team_name','home_ppg_per_odds_pre_game')], df.loc[:,('away_team_name','away_ppg_per_odds_pre_game')].rename(columns='away_team_name':'home_team_name','away_ppg_per_odds_pre_game':'home_ppg_per_odds_pre_game')])
那么你可以使用groupby
获取手段:
data_df.groupby('home_team_name')['home_ppg_per_odds_pre_game'].mean().reset_index()
【讨论】:
好答案。请在您建议的文本解决方案中说明供未来读者遵循。以上是关于基于可互换出现在两列中的值聚合数据?的主要内容,如果未能解决你的问题,请参考以下文章