Как обратиться к элементу dataframe python
Перейти к содержимому

Как обратиться к элементу dataframe python

  • автор:

Доступ по индексу в DataFrame

Мы уже рассказывали о структуре DataFrame в Pandas — высокоуровневой Python-библиотеке для анализа данных. Но как осуществляется доступ по индексу в DataFrame?

На самом деле, индекс по строкам мы можем задавать различными способами, к примеру, в процессе формирования самого объекта DataFrame либо, как говорится «на лету»:

1-1801-0b5206.png

Таким образом, мы видим, что индексу задается имя Country Code. Также стоит отметить, что объекты Series из DataFrame приобретут те же самые индексы, что и объект DataFrame:

2-1801-7cad7d.png

При этом доступ к строкам по индексу можно осуществить 2-мя способами:

  • .loc — для доступа по строковой метке;
  • .iloc — для доступа по числовому значению (от 0 и выше).

3-1801-b20362.png

Идем дальше. У нас есть возможность выполнять выборку по индексу и интересующим колонкам:

4-1801-23a393.png

Обратите внимание, что .loc в квадратных скобках принимает два аргумента. Кроме интересующего индекса, поддерживаются колонки и слайсинг.

5-1801-94bf8f.png

Следующий момент — у нас есть возможность фильтровать DataFrame, используя для этого булевы массивы:

6-1801-d55bae.png

Кроме того, существует возможность обращения к столбцам — для этого применяется атрибут либо нотация словарей Python, то есть df.population и df[‘population’] — это, по сути, одно и то же.

Если надо сбросить индексы, сделать это можно следующим образом:

7-1801-da0017.png

Также Pandas при операциях над DataFrame осуществляет возвращение нового объекта DataFrame.

Давайте выполним добавление нового столбца, где население, исчисляемое в миллионах человек, мы поделим на площадь государства, тем самым получив плотность:

8-1801-8a2ed7.png

Теперь представим, что новый столбец нас чем-то не устраивает. Не беда — его можно без проблем удалить:

9-1801-3e19be.png

Ну а если вы очень ленивы, то достаточно написать del df[‘density’].

Для переименования столбцов воспользуемся методом rename:

10-1801-5b9ffb.png

В вышеприведенном примере перед переименованием столбца Country Code следует сначала удостовериться, что с него сброшен индекс. В обратном случае никакого эффекта не будет.

DataFrame: как обратиться к элементу массива

Выводит следующее:[list([‘Martha’, ‘A1’]) 87]
А мне нужно [‘A1’, 87]
Подскажите пожалуйста, как это можно осуществить? Буду очень сильно благодарен за помощь!

Добавлено через 50 минут
Всем спасибо большое, кто хотел помочь. Я разобрался:

print(df["Name"].str[1])

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как обратиться к элементу массива?
Заранее извиняюсь за нубство, но ассемблер начал изучать вчера(буквально) и много чего пока не.

Как обратиться к элементу массива
Всем привет. Есть массив такого вида Array ( => 12 .

Как обратиться к предыдущему элементу массива
Доброго времени суток. В общем задача такова: нужно создать двумерный массив 20 на 20 в котором.

Как обратиться к элементу строкового массива
Добрый вечер ;). Подскажите что значит ошибка "SelectedItem не является членом String" в строке. .

Как обратиться к конкретному элементу массива?
не понимаю, как используя дженерики, вывести конкретный элемент массива. в виде: номер.

Как выбрать строки по индексу в Pandas DataFrame

Часто вам может понадобиться выбрать строки кадра данных pandas на основе их значения индекса.

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

Если вы хотите выбрать строки на основе индексации меток, вы можете использовать функцию .loc .

В этом руководстве представлен пример использования каждой из этих функций на практике.

Пример 1: выбор строк на основе целочисленного индексирования

В следующем коде показано, как создать кадр данных pandas и использовать .iloc для выбора строки с целочисленным значением индекса 4 :

import pandas as pd import numpy as np #make this example reproducible np.random.seed (0) #create DataFrame df = pd.DataFrame(np.random.rand (6,2), index=range(0,18,3), columns=['A', 'B']) #view DataFrame df A B 0 0.548814 0.715189 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 15 0.791725 0.528895 #select the 5th row of the DataFrame df.iloc [[4]] A B 12 0.963663 0.383442 

Мы можем использовать аналогичный синтаксис для выбора нескольких строк:

#select the 3rd, 4th, and 5th rows of the DataFrame df.iloc [[2, 3, 4]] A B 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 

Или мы могли бы выбрать все строки в диапазоне:

#select the 3rd, 4th, and 5th rows of the DataFrame df.iloc [2:5] A B 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 

Пример 2. Выбор строк на основе индексации меток

В следующем коде показано, как создать кадр данных pandas и использовать .loc для выбора строки с меткой индекса 3 :

import pandas as pd import numpy as np #make this example reproducible np.random.seed (0) #create DataFrame df = pd.DataFrame(np.random.rand (6,2), index=range(0,18,3), columns=['A', 'B']) #view DataFrame df A B 0 0.548814 0.715189 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 15 0.791725 0.528895 #select the row with index label '3' df.loc[[3]] A B 3 0.602763 0.544883 

Мы можем использовать аналогичный синтаксис для выбора нескольких строк с разными метками индекса:

#select the rows with index labels '3', '6', and '9' df.loc[[3, 6, 9]] A B 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 

Разница между .iloc и .loc

Приведенные выше примеры иллюстрируют тонкую разницу между .iloc и .loc :

  • .iloc выбирает строки на основе целочисленного индекса.Итак, если вы хотите выбрать 5-ю строку в DataFrame, вы должны использовать df.iloc[[4]], так как первая строка имеет индекс 0, вторая строка имеет индекс 1 и так далее.
  • .loc выбирает строки на основе помеченного индекса.Итак, если вы хотите выбрать строку с меткой индекса 5, вы должны напрямую использовать df.loc[[5]].

DataFrame: как обратиться к элементу списка в ячейке

Подскажите пожалуйста, как я могу обратиться к элементу списка внутри dataframe? У меня есть следующий код:

import pandas as pd dict = df = pd.DataFrame(dict) print(df.values[0]) # Я пробовал сделать df.values[0][1] - но так не работает 

Выводит следующее: [list([‘Martha’, ‘A1’]) 87] А мне нужно [‘A1’, 87] Подскажите пожалуйста, как это можно осуществить? Буду очень сильно благодарен за помощь

Отслеживать

24.8k 4 4 золотых знака 20 20 серебряных знаков 36 36 бронзовых знаков

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *