Я запускаю новый учебный модуль в pandas, где мы занимаемся индексацией и фильтрацией данных. Я столкнулся с форматом цепочки методов, который не был объяснен в курсе, и мне было интересно, если кто-нибудь может помочь мне разобраться в этом. Набор данных взят из списков компаний из списка Fortune 500.
df = pd.read_csv('f500.csv', index_col = 0)
Проблема в том, что нас учили использовать логическое индексирование, передавая условие bool в фрейм данных следующим образом:
motor_bool = df["industry"] == "Motor Vehicles and Parts"
motor_countries = df.loc[motor_bool, "country"]
Приведенный выше код должен был найти страны, в которых в качестве отраслей используются «Транспортные средства и запчасти». Последнее упражнение в модуле требует от нас
«Создать серию industry_usa, содержащую подсчет двух наиболее распространенных значений в столбце отрасли для компаний со штаб-квартирой в США.»
И код ответа:
industry_usa = f500["industry"][f500["country"] == "USA"].value_counts().head(2)
Я не понимаю, как мы можем внезапно использовать df [col] df [col] спина к спине? Разве я не должен сначала передать условие bool, а затем указать, какой столбец я хочу назначить, используя .lo c? Метод цепочки использованных очень отличается от того, что мы практиковали.
Пожалуйста, помогите. Я действительно в замешательстве.
Как всегда, спасибо вам, стек сообщества.