【问题标题】:Iterating through pandas column遍历 pandas 列
【发布时间】:2019-03-28 02:40:49
【问题描述】:

我有一个包含以下列的数据框:

User_id   PQ          TGGS       PAG       Games_played
118399  8.536585    7.079646    10.204082   7.711443
212651  75.000000   73.684211   75.000000   46.534653
210314  60.000000   9.523810    33.333333   14.414414

列实际上是游戏代码。我实际上想根据用户玩游戏的百分比来推荐用户玩游戏。在我的数据集中,用户 212651 玩了 75% 的时间 PQ 游戏和 73% 的时间 TGGS 游戏。所以如果玩PQ,他很可能会玩TGGS。现在这个值变化很大。所以我设置的参数是50%。所以对于一个用户,如果一个特定的游戏与另一个游戏有 50% 的关联,我想给他发一封电子邮件,说明下一个是 TGGS 游戏,因为这两个值是高度关联的。

我想保持 50% 的值之间的关联关系。 所以我写的代码是

    for i, num in new_df['PQ'].iteritems():
        if num > new_df['TGGS'] * .5:
            print User_id[num]
            print new_df['TGGS']

我在第 2 行遇到语法错误。

   1467                         "indexers [{key}] of {kind}".format(
   1468                             form=form, klass=type(self), key=key,
-> 1469                             kind=type(key)))
   1470 
   1471     def get_duplicates(self):

TypeError: cannot do label indexing on <class 'pandas.core.indexes.range.RangeIndex'> with these indexers [8.536585365853659] of <class 'numpy.float64'>

谁能给我一个好的解决方案。

最终目标是获得一个带有 user_id 的数据名,如果 PQ 与 TGGS True 相关,则与 PAG True 相关。这样我就可以向该特定用户发送电子邮件

【问题讨论】:

  • 欢迎来到 SO!如果任何答案有助于解决您的问题,如果您通过接受最佳答案来结束您的问题,这将是有益的

标签: python pandas machine-learning data-analysis


【解决方案1】:

您可以在数据框中只选择您需要的项目:

df[df['PQ'] > (df['TGGs'] * 0.5)]

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 2018-10-20
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2021-01-29
    相关资源
    最近更新 更多