Python Pandas警告消息

时间:2018-10-07 02:23:10

标签: python pandas

我正在使用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文件读取

1 个答案:

答案 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