Почему если итерация оператора возвращает неоднозначный ряд bool? - PullRequest
0 голосов
/ 05 апреля 2020

Я совершенно новичок в python. Я пытаюсь перебрать столбцы списка, используя оператор «if» с двумя условиями. Оператор возврата, который я продолжаю получать: "Значение истинности серии неоднозначно (при итерации по серии с использованием оператора if"

Ниже приведен мой код (фрейм данных состоит из данных приложения из Google Play Store)

import pandas as pd
df = pd.read_csv("googleplaystore.csv")
df.tail()

df["Rating"].fillna(value = '0.0', inplace= True)

medical_app_ratings = []

for row in df[1:]:
    rating = df.Rating
    genre = df.Genres
    if genre == "Medical":
        medical_app_ratings.append(rating)

ValueError                                Traceback (most recent call last)
<ipython-input-154-51c7806c01da> in <module>
      5     rating = df.Rating
      6     genre = df.Genres
----> 7     if genre == "Medical":
      8         medical_app_ratings.append(rating).bool()
      9 

~\anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
   1477     def __nonzero__(self):
   1478         raise ValueError(
-> 1479             f"The truth value of a {type(self).__name__} is ambiguous. "
   1480             "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
   1481         )

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Если кто-нибудь может подсказать, что я делаю неправильно, я был бы очень признателен.

1 Ответ

1 голос
/ 05 апреля 2020

Я предполагаю, что вы хотите перебрать кадр данных, и я рекомендую использовать df.iterrows() для его выполнения sh.

Вот пример того, как его использовать:

medical_app_ratings = []
for i, row in df.iterrows():
  rating = row.Rating
  genre = row.Genres
  if genre == "Medical":
    medical_app_ratings.append(rating)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...