Python熊猫警告信息

2022-05-21 08:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python/Pandas在Jupyter笔记本上做作业

我必须这样做:如果一款游戏是随机从数据集中挑选出来的,那么就要确定它的概率:它是“惊人的”,因为它是在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是在前面的代码中定义的。数据是一个可变的数据帧,它使用csv\u read从csv文件中读取数据


Tags: csv数据代码警告pandasdata笔记本jupyteritscorephrase做作业amazingphrasecountplatformcountpamazingless2000
1条回答
网友
1楼 ·

您正在尝试链接索引。。。两次。文档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()

由于True/False值被认为分别等效于1/0,因此上述计算对于Python/Pandas来说是自然的