首页 > 解决方案 > 如何组合在一列中具有相同值的熊猫数据框中的行

问题描述

我有一个 2019-2020 赛季 NBA 球员统计数据的 pandas 数据框。一些球员的名字出现了不止一次,因为他们在整个赛季都效力于多支不同的球队。我想组织数据框,使每个玩家的名字只出现一次,对于名字出现多次的玩家,我想取他们所有统计数据的平均值并将其放在一行中。

例如,如果有一个球员在 3 支不同的球队打球并连续出现 3 行,我想将这 3 行合并为一行,新行是这三行所有统计数据的平均值。

以下是玩家姓名多次出现的示例:

例子

有什么简单的方法可以做到这一点吗?我不知道一个玩家可能会出现多少次,我也不知道有多少玩家的名字会出现多次。我想遍历数据框并取具有相同玩家名称的行的所有统计数据的平均值。

如果需要,我可以删除“Tm”列或任何字符串列(“Player”除外),因为我并不绝对需要它们,但如果可能的话,我宁愿保留它们。

标签: pythonpandasdataframe

解决方案


您可以为此使用分组方法:

cols = [col for col in df.columns if all(char.isdigit() for char in col)]
df.groupby('player')[cols].mean()

推荐阅读