Концепции Pandas, которые вы должны знать, чтобы пройти собеседование по кодированию и преуспеть в своем путешествии по науке о данных.
Это 3 концепции, которые я считаю наиболее важными, когда речь идет о Pandas.
1. Знайте, как использовать метод «применить»
Этот метод в основном позволяет вам «применять» определенные указанные операции к вашему фрейму данных. Либо это может быть на всем фрейме данных, либо на некоторых выбранных столбцах.
Это удобно, особенно когда вы хотите быстро применить определенные изменения к своим столбцам, например, «понизить» каждое значение в столбце или, может быть, «удалить стоп-слова» из этого столбца.
Вот фрагмент кода, демонстрирующий использование метода «применить» для заданного столбца в pandas:
# assume your dataframe has the column 'usernames' # let's lower each value in this column data["usernames"] = data["usernames"].apply(str.lower) # calculate number of characters & save that info in a new column data["character_count"] = data["usernames"].apply(len)
Обратите внимание, что метод «нижний» работает только со строками, и мы обычно делаем что-то вроде: myString.lower(), но, поскольку мы не делаем этого таким образом, мы должны использовать его, вызывая сначала класс «str». .
2. Использование оператора «GroupBy» для группировки данных
Много раз нам нужно сгруппировать наши данные на основе некоторых конкретных значений. Например, может быть, у вас есть фрейм данных, который выглядит так:
Фрейм данных говорит нам:
- Дом «а» имеет «2» комнаты на «1 этаже»
- В доме «а» «2» комнаты на «2 этаже»
- Дом «б» имеет «2» комнаты на «1 этаже»
- В доме «б» есть «1» комната на «2 этаже»
- и так далее…
Если вы хотите получить общее количество комнат в каждом доме, вам нужно будет сгруппировать эти данные по «дому», а затем «подсчитать» общее количество «комнат» на каждом этаже.
Вот код, чтобы сгруппировать эти данные по «дому» и добавить количество комнат, чтобы получить общее количество —
df.groupby(by="house", as_index=False).agg({ "rooms" : sum })
Внутри функции агрегата (agg) мы указываем операцию, которую нужно выполнить с данным столбцом после того, как данные будут сгруппированы. В нашем случае мы хотим «суммировать» «комнаты» после того, как данные сгруппированы, поэтому мы использовали «комнаты» в качестве столбца и «сумму» в качестве операции.
Чтобы лучше понять это, давайте также сгруппируем данные по «этажу» и посмотрим, сколько «комнат» есть на каждом этаже, независимо от «дома» —
df.groupby(by="floor", as_index=False).agg({ "rooms" : sum })
Прежде чем мы перейдем к третьему пункту, подпишитесь на мою рассылку, чтобы получать статьи прямо в свой почтовый ящик —
3. Использование пользовательских «лямбда»-функций для фильтрации или обработки данных
В пункте №1 о методе «применить мы использовали только встроенные методы для обработки наших данных. Часто этих встроенных функций недостаточно для получения ожидаемого результата.
Чтобы помочь нам в этом, мы можем использовать пользовательские функции в методе «применить», используя «лямбда». Вот как —
# assume your dataframe has the column 'query', containing numbers as well # let's lower each value in this column like we did in point #1 data["query"] = data["query"].apply(str.lower) # the above code will output an error as we cannot lower the 'numbers' # let's write more complex code using lambda function to remove this bug # we will lower only if the value is a 'string' data["query"] = data["query"].apply(lambda q:q.lower() if type(q) == str else q)
Вы также можете определить пользовательскую функцию отдельно, а затем вызвать ее внутри метода «применить» следующим образом:
# define a function def lower_query(query): if type(query) == str: return query.lower() return query # call the defined function inside apply data["query"] = data["query"].apply(lower_query)
В Pandas есть намного больше, чем то, что мы рассмотрели в этой статье, но я думаю, что эти 3 вещи являются наиболее важными и обязательными для всех концепций в Pandas.
Спасибо, что прочитали! Пожалуйста, хлопайте в ладоши, комментируйте и делитесь статьей, если вы нашли мое письмо полезным. 🖤👏🏻
Другие рекомендуемые сообщения —