python - Python Pandas - 到目前为止在每一行的列中找到的字符串计数
问题描述
我正在对过去的 NHL 赛季进行一些分析和可视化,并且在我的 DataFrame 中创建一些额外的数据/功能时遇到了困难。
这是数据框的简化版本,其中每一行代表一个游戏。
game_id h_abbr a_abbr
0001 WSH TOR
0002 ANA TOR
0003 TOR MIN
我如何计算到目前为止每支球队打了多少场比赛(包括有问题的比赛),所以新列看起来像这样?
game_id h_abbr a_abbr ht_game_no at_game_no
0001 WSH TOR 1 1
0002 ANA TOR 1 2
0003 TOR MIN 3 1
经过大量的搜索和尝试,我只找到了一种方法来计算球队打了多少场主客场比赛,但我对打球的总数感兴趣。
df['Nth_away_game'] = df.groupby('a_abbr').cumcount() + 1
解决方案
想法是通过 重塑值DataFrame.stack
,然后使用GroupBy.cumcount
,检查列名DataFrame.add_suffix
,最后DataFrame.join
到原始:
s = df[['h_abbr','a_abbr']].stack()
df = df.join(s.groupby(s).cumcount().add(1).unstack().add_suffix('_no'))
print (df)
game_id h_abbr a_abbr h_abbr_no a_abbr_no
0 1 WSH TOR 1 1
1 2 ANA TOR 1 2
2 3 TOR MIN 3 1
推荐阅读
- reporting-services - 转至行动报告。没有后退选项
- oracle - SQLDeveloper,有错误的 Oracle 过程
- python - 当启用急切执行时,传递给 Optimizer.compute_gradients 的 `loss` 应该是一个函数
- drmaa - Blender中基于DRM的计算
- asp.net - 我可以防止我的 asp.net mvc-4 Web 应用程序中的 Elmah 暴露用户的密码吗
- r - 是否有代码可以在 dplyr 等 R 安装包中查找函数的数量
- python - 如何过滤任意结果的查询?
- python - 如何创建一个字典,将 csv 列内容作为键,将出现次数作为值?
- expect - 偶尔期望发送命令被截断
- r - R - 合并分布在数据帧列表中的标识符值