【问题标题】:Create a triple-double column in Pandas with NBA stats使用 NBA 统计数据在 Pandas 中创建三双列
【发布时间】:2019-01-26 19:15:44
【问题描述】:

我在 Pandas 中创建一种非常特殊的布尔列时遇到了问题。我正在处理 NBA 数据,我想为球员获得三双的时间创建一个列。此代码有效:

james_harden['trip_dub'] = (james_harden['points'] >= 10) & (james_harden['rebounds' >= 10) & (james_harden['assists'] >= 10)

james_harden['trip_dub'] = james_harden['trip_dub'].map(lambda x: 1 if x == True else 0)

然而,三双可以通过得分、篮板和助攻……得分、篮板和盖帽……篮板、盖帽和助攻……等等来实现

我想知道是否可以编写代码来检查总共五列中的三列的任意组合是否大于或等于 10...

如果我有 a、b、c、d、e 列,我该如何检查 (a >= 10 and b>= 10 and c>=10) OR (a >= 10 and d>=10 and e >= 10) 是否存在?

【问题讨论】:

    标签: python pandas boolean


    【解决方案1】:

    假设您有 5 个统计数据,并且三双定义为至少 3 个统计数据中的至少 10 分,您可以使用 pd.DataFrame.sumaxis=1

    stats = ['points', 'rebounds', 'assists', 'blocks', 'steals']
    james_harden['trip_dub'] = (james_harden[stats] >= 10).sum(1) >= 3
    

    这个想法是james_harden[stats] >= 10 代表一个布尔数据框,并在其上沿列调用sum 求和每行True 值的数量。然后我们只需要检查每一行中的数字是否大于或等于3

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      相关资源
      最近更新 更多