Pandas — это библиотека Python, используемая для работы с наборами данных. Он имеет функции для анализа, очистки, изучения и манипулирования данными. Он построен поверх NumPy.
Есть много статей об огромном количестве методов и атрибутов библиотеки, обычно используемых в библиотеке. В этой статье мы в первую очередь рассмотрим менее изученные детали структур данных, которые мы используем в библиотеке: ряды и фреймы данных.
Серия
Серия по сути является массивом NumPy, однако, в то время как массив NumPy имеет неявно определенный целочисленный индекс, используемый для доступа к значениям, серия Pandas имеет явно определенный индекс, связанный со значениями.
Кроме того, в отличие от массивов NumPy, мы можем изменить индексы с числового значения по умолчанию на наш выбор.
pd.Series([123, 1743, -504, 4], index=['a', 'b', 'c', 'd'])
Совершенно очевидно, что это должно напоминать вам о словарях, и преобразование словаря в серию действительно возможно.
Запрос серии: запрос результатов на основе данных.
- iloc и loc:
Они предназначены для поиска значения, соответствующего индексу, где число вводится как число или метка столбца соответственно.
Это атрибуты, поэтому мы используем [ ], а не ( ) .
2. Одновременные операции
Это результат векторизации в операциях NumPy. Поскольку Pandas построен на NumPy, мы можем использовать методы, которые выполняют вычисления одновременно (или параллельно), что сокращает время.
Простой пример из многих возможных применений:
Мы можем просто выполнять арифметические действия над всем массивом вместо того, чтобы действовать поэлементно.
import pandas as pd #say we have a Series s. s = pd.Series(np.random.randint(0,1000,1000))
Две возможности:
Фрейм данных
По сути, это 2D-серия.
DataFrame имеет индекс строки и столбца; его можно рассматривать как список серий (один для всех, использующих один и тот же индекс).
~ Python для анализа данных, Уэс Маккинни.
Примечание: индексы могут быть неуникальными; все соответствующие значения индекса возвращаются, когда операция выполняется с неуникальным индексом.
Создание кадра данных
Несколько серий:
Список словарей:
Запрос DataFrame:
Несмотря на то, что это очень похоже на то, как можно было бы действовать в серии, присутствуют некоторые интересные дополнительные возможности.
Результирующий тип запроса для доступа к части DataFrame может быть следующих типов:
а) тип объекта (тип элемента NumPy в этом месте). [ Когда возвращается один элемент].
b) pandas.core.series.Series[Когда возвращается строка или столбец из-за присутствия более одного индекса].
c) pandas.core.frame.DataFrame [Когда присутствует несколько значений, соответствующих обоим индексам].
- Выбор значения поперек оси
Мы можем выбрать значение на основе индекса строки и столбца одновременно. Например,
2. Доступ к столбцам
На самом деле использование loc, например df.loc[‘Column_Name’], приведет к ошибке.
3. Использование loc to для выбора определенного подмножества DataFrame
4. Сравнение на месте и стандартное назначение
Большинство операций с фреймами данных выполняются после создания копии. То есть, когда вы добавляете столбец или удаляете столбец, или что-то в этом роде, создается новый DataFrame.
А) Общий метод
df = df.drop(columns = ["Column_Name"])
Это изначально идет о создании дополнительной памяти, а затем назначает ее df. Несмотря на то, что мы достигли своей цели, мы напрасно потратили место для хранения.
B) Способ эффективного хранения
df = df.drop(columns = ["Column_Name"],inplace =True)
Это полезно прочитать, если вы хотите узнать больше об операциях на месте.