我正在使用Python / Pandas在Jupyter Notebook中进行作业
我必须这样做:如果从数据集中随机选择了一个游戏,请确定以下可能性:考虑到它是在2000年之前发布的,这是“惊人的”。
我写了这段似乎可行的代码:
amazingPhraseCount = data[data["score_phrase"] == "Amazing"][data["release_year"] < 2000]["score_phrase"].count()
pAmazingLess2000 = amazingPhraseCount/platformCount
print("Probability it's amazing given it was released before 2000: " + str(Round(pAmazingLess2000, 4)))
但是我得到这个警告:
C:\Program Files\Anaconda3\lib\site-packages\ipykernel_launcher.py:26: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
因此,我担心我从编写的代码中获得的价值可能不正确。我只是不明白警告。
注意:platformCount是在先前的代码中定义的。 data是一个可变数据帧,可使用csv_read
从csv文件读取答案 0 :(得分:0)
您正在尝试链接索引...两次。 explicitly discourage文档完全链接了索引 。确实,我认为永远是不合适的。充其量是模棱两可的,但有效。很有可能会引入错误。
实际上,您根本不需要过滤数据框。您可以使用布尔序列进行计算:
# calculate total number pre-2000
year_mask = data['release_year'] < 2000
amazing_mask = data['score_phrase'] == 'Amazing'
# calculate probability amazing given pre-2000
res = (year_mask & amazing_mask).sum() / year_mask.sum()
上面的计算对于Python / Pandas是很自然的,因为True
/ False
的值分别被认为等效于1
/ 0
。