【发布时间】:2020-12-07 12:24:19
【问题描述】:
我正在尝试将大量包含球员姓名和每年结果的 csv 文件合并到一个概览中。我每个团队都有一个 csv 文件,其中包含球员姓名、出生日期和每年的结果。在某些 csv 文件中,缺少出生日期列。尝试合并缺少生日列的文件时,我得到重复的行。
例如,对于2010年的A队,我有下面的结果表,teamA2010:
Player Birthdate 2010
John Doe 14-3-1999 12
Jane Doe 15-6-1995 3
2011年同一队的成绩如下。请注意,缺少 Birthdate 列。 teamA2011
Player 2011
John Doe 2
Jane Doe 1
Alice 3
我想要的是下表:
Player Birthdate 2010 2011
John Doe 14-3-1999 12 2
Jane Doe 15-6-1995 3 1
Alice 3
我尝试使用外部联接合并表格(因为新玩家可能会在以后加入团队),但不确定如何汇总出生日期和年份?
join_on = ["Player", "Birthdate"]
if "Birthdate" in TeamA2011.columns:
df = pd.merge(TeamA2010, TeamA2011, how='outer', on=join_on)
else:
join_on.remove("Birthdate")
df = pd.merge(TeamA2010, TeamA2011, how='outer', on=join_on)
join_on.insert(-1, "Birthdate")
结果如下表:
Player Birthdate 2010 2011
John Doe 14-3-1999 12
John Doe 2
Jane Doe 15-6-1995 3
Jane Doe 1
Alice 3
【问题讨论】:
标签: python-3.x pandas merge