我已经在寻找这一答案了一天。我找不到解决方案。我有两个用于NBA统计数据的数据框。一个只有团队名称,另一个则具有团队名称和相关的统计信息。我想在第一个数据帧上查找每个团队名称,并将第二个数据统计数据附加到与该团队名称匹配的行中。
df1 = 'DATE' : [rows of dates], 'TEAM_NAME': [row of team names with duplicates]
df2 = 'TEAM_NAME': [row of unique team names], 'STAT #1' ['row of stats], etc....
我想df1
看起来像这样:
'DATE' 'TEAM_NAME' 'STAT 1' 'STAT 2' etc...
1-Jan-21 Boston 23 15
5-Jan-21 Detroit 45 90
1-Jan-21 Boston 23 15
UPDATE *我使用了合并和联接,它确实可以满足我的需要,但是有一个问题。这两个功能在遇到数据加入时都会按团队名称对我的数据进行分组。我需要它来保留原始顺序并以这种方式替换行。
无需从单元格中单独提取值,只需合并两个数据帧即可。
merged = df1.merge(df2,how='left')
由于df1和df2都具有“ TEAM_NAME”列,因此假定这些值是两个数据帧之间唯一的共享列,则合并操作将自动对这些值进行合并。如果框架具有多个共享列,请指定连接列;
merged = df1.merge(df2,how='left',on='TEAM_NAME')
并且如果您需要在date和team_name列上合并;
merged=df1.merge(df2,how='left',on=['TEAM_NAME','DATE'])
但是要回答您的原始问题,可以按如下所示按值检索单元格:
stat1 = df2.loc[df2.TEAM_NAME=='LAKERS','STAT#1']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句