【发布时间】:2018-07-17 14:19:56
【问题描述】:
我正在使用两个数据帧,一个包含玩家列表,另一个包含来自另一个数据帧的玩家的逐个播放数据。这两个数据帧中感兴趣的部分行如下所示。
0 Matt Carpenter
1 Jason Heyward
2 Peter Bourjos
3 Matt Holliday
4 Jhonny Peralta
5 Matt Adams
...
Name: Name, dtype: object
0 Matt Carpenter grounded out to second (Grounder).
1 Jason Heyward doubled to right (Liner).
2 Matt Holliday singled to right (Liner). Jason Heyward scored.
...
Name: Play, dtype: object
我要做的是在第一个数据帧中创建一个列,该列计算另一个数据帧中该列中字符串 (df['Name'] + 'scored') 的出现次数。例如,它会搜索“马特卡彭特得分”、“杰森海沃德得分”等实例。我知道你可以使用 str.contains 来做这种事情,但它似乎只有在你输入明确的情况下才有效细绳。例如,
batter_game_logs_df['R vs SP'] = len(play_by_play_SP_df[play_by_play_SP_df['Play'].str.contains('Jason Heyward scored')].index)
工作正常,但如果我尝试
batter_game_logs_df['R vs SP'] = len(play_by_play_SP_df[play_by_play_SP_df['Play'].str.contains(batter_game_logs_df['Name'].astype(str) + ' scored')].index)
它返回错误“系列”对象是可变的,因此它们不能被散列。我已经查看了各种类似的问题,但无法为我的一生找到解决这个问题的方法。对此的任何帮助将不胜感激,谢谢!
【问题讨论】: