我有一个包含以下列的数据框:
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关联。这样我就可以通过电子邮件发送该特定用户
最佳答案
您可以通过以下方式仅选择数据框中所需的项目:
df[df['PQ'] > (df['TGGs'] * 0.5)]