Предупреждение Python Pandas - PullRequest
       2

Предупреждение Python Pandas

0 голосов
/ 07 октября 2018

Я делаю задание в Jupyter Notebook, используя Python / Pandas

Мне нужно сделать следующее: если игра выбирается из набора данных случайным образом, определите вероятность того, что: «Это удивительно», учитывая, чтоон был выпущен до 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, используя csv_read

1 Ответ

0 голосов
/ 07 октября 2018

Вы пытаетесь выполнить цепную индексацию ... дважды.Документы явно не поощряют цепную индексацию на всех .Действительно, я не верю, что это когда-либо уместно.В лучшем случае это неоднозначно, но работает;более вероятно, что это приведет к ошибкам.

На самом деле, вам вообще не нужно фильтровать ваш фрейм данных.Ваши вычисления возможны с булевыми рядами:

# 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 соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...