【发布时间】:2021-12-08 18:17:21
【问题描述】:
我有一个名为 nflLineups 的主 DataFrame。
我希望再合并 3 个 DataFrame:dfPass、dfRush、dfReceive 与第一个 DF、nflLineups。
到目前为止,我尝试过的任何方法都没有奏效。尝试了追加、连接和合并——合并 how='left'、how='outer'、on = 'Name' 等。
我的目标是有一个大型输出来合并 Name 上的数据,但保留所有列及其各自的值。
主要输出应具有以下列:姓名、团队、职位、passYrds、rushYrds、recYrds。我只想将统计数据(pass、rush、rec)填写在 nflLineups 中球员姓名旁边的各自行中。并非每个玩家都有每个类别的数据,因此这些值应留空(不适用)。
我看到 Stack 上有一些合并示例,但还没有找到可以成功使用的代码。在过去的 2 天里一直在处理这个问题,如果可能的话可以使用一些帮助。仍在学习如何合并数据,并认为自己是 Python 新手。
任何帮助将不胜感激。
到目前为止,这是我的代码:
import pandas as pd
nflLineups = pd.DataFrame([{'Name': 'Teddy', 'Team': 'DEN', 'Position': 'QB'},
{'Name': 'Melvin', 'Team': 'DEN', 'Position': 'RB'},
{'Name': 'Courtland', 'Team': 'DEN', 'Position': 'WR'},
{'Name': 'Tim', 'Team': 'DEN', 'Position': 'WR'},
{'Name': 'Kendal', 'Team': 'DEN', 'Position': 'WR'},
{'Name': 'Noah', 'Team': 'DEN', 'Position': 'TE'},
{'Name': 'Case', 'Team': 'CLE', 'Position': 'QB'},
{'Name': 'D Ernest', 'Team': 'CLE', 'Position': 'RB'},
{'Name': 'Odell', 'Team': 'CLE', 'Position': 'WR'},
{'Name': 'Jarvis', 'Team': 'CLE', 'Position': 'WR'},
{'Name': 'Donovan', 'Team': 'CLE', 'Position': 'WR'},
{'Name': 'Austin', 'Team': 'CLE', 'Position': 'TE'},])
dfPass = pd.DataFrame([{'Name': 'Teddy', 'Team': 'DEN', 'Position': 'QB', 'passYrds': 1500},
{'Name': 'Case', 'Team': 'CLE', 'Position': 'QB', 'passYrds': 1350}])
dfRun = pd.DataFrame([{'Name': 'Teddy', 'Team': 'DEN', 'Position': 'QB', 'rushYrds': 45},
{'Name': 'D Ernest', 'Team': 'CLE', 'Position': 'RB', 'rushYrds': 350}])
dfReceive = pd.DataFrame([{'Name': 'D Ernest', 'Team': 'CLE', 'Position': 'RB', 'recYrds': 68},
{'Name': 'Jarvis', 'Team': 'CLE', 'Position': 'WR', 'recYrds': 250}])
【问题讨论】:
标签: python pandas dataframe merge concatenation