【发布时间】:2018-12-25 16:24:15
【问题描述】:
我有两个数据框,我正在尝试将数据从一个数据框映射到下一个数据框。第一个数据帧将玩家姓名作为其索引,将玩家/游戏 ID 作为其标题。
数据框 1:
Date + Game 2015-04-12 PIT@MIL 2015-04-12 SEA@OAK \
Alcides Escobar 0 0
Mike Moustakas 0 0
Lorenzo Cain 0 0
Eric Hosmer 0 0
数据框 2:
Name Date + Game
0 Alcides Escobar 2015-04-12 KAN@LAA
1 Mike Moustakas 2015-04-12 KAN@LAA
2 Lorenzo Cain 2015-04-12 KAN@LAA
3 Eric Hosmer 2015-04-12 KAN@LAA
4 Kendrys Morales 2015-04-12 KAN@LAA
5 Alex Rios 2015-04-12 KAN@LAA
6 Salvador Perez 2015-04-12 KAN@LAA
第二个数据框包含有关玩家的信息,并在两列中包含玩家的姓名和日期/游戏 ID。我正在尝试使用以下公式根据玩家的姓名和 ID 将数据从第一个数据帧映射到第二个数据帧:
batter_game_logs_df['R vs SP'] = batter_game_logs_df['Name'].map(play_by_play_run_scored_SP_df[batter_game_logs_df['Date + Game']], na_action='ignore').fillna(0)
由于我在第一个数据帧中选择数据的列依赖于第二个数据帧中的日期 + 游戏列,因此代码会显示一个错误,指出“数据帧对象不可调用”。如果我手动将列引用替换为日期/游戏 ID,它就可以工作。例如,
batter_game_logs_df['R vs SP'] = batter_game_logs_df['Name'].map(play_by_play_run_scored_SP_df['2015-04-12 KAN@LAA'], na_action='ignore').fillna(0)
有谁知道我如何设法在第二个数据框中创建一个列来链接第一个数据框中的数据?
【问题讨论】: