С помощью Pandas мы можем выполнить нарезку в кадре данных.Нарезка во фреймах данных Pandas с помощью iloc[]
— это новый метод в Python для извлечения определенных подмножеств данных.Метод iloc[]
Позволяет находить и извлекать стоки и столбцы на основе их целочисленных позиций.
Чтобы настроить резку с помощью iloc[]
вы указываете индексы строк и столбцов, которые необходимо включить в нарезанный кадр данных.Синтаксис аналогичен традиционной нарезке массивов, что делает его преобразование понятным для пользователей Python.Например, df.iloc[1:5, 2:4]
извлекает строки со 2-й по 5-ю и столбцы с 3-го по 4-й из кадра данных.
Создание каркаса данных в Pandas включает в себя следующие шаги:
- Создание каркаса данных
- Нарезать каркас данных
Давайте импортируем библиотеку pandas и создадим структуру данных pandas из пользовательского вложенного списка.
import pandas as pd
player_list = [['M.S.Dhoni', 36, 75, 5428000],
['A.B.D Villers', 38, 74, 3428000],
['V.Kohli', 31, 70, 8428000],
['S.Smith', 34, 80, 4428000],
['C.Gayle', 40, 100, 4528000],
['J.Root', 33, 72, 7028000],
['K.Peterson', 42, 85, 2528000]]
df = pd.DataFrame(player_list, columns=['Name', 'Age', 'Weight', 'Salary'])
df # data frame before slicing
Вывод:
Имя Возраст Вес Зарплата
0 MSDhoni 36 75 5428000
1 ABD Villers 38 74 3428000
2 V.Kohli 31 70 8428000
3 S.Smith 34 80 4428000
4 C.Gayle 40 100 4528000
5 J.Root 33 72 7028000
6 K.Peterson 42 85 2528000
1. Нарезка с помощью iloc
A. Нарезка строки в кадре данных в Python
df1 = df.iloc[0:4]
df1
Вывод:
Name Age Weight Salary
0 M.S.Dhoni 36 75 5428000
1 A.B.D Villers 38 74 3428000
2 V.Kohli 31 70 8428000
3 S.Smith 34 80 4428000
В приведенном выше примере мы вырезали строки из фрейма данных.
B. Нарезка столбцов в фрейме данных в python
df1 = df.iloc[:, 0:2]
df1
Вывод:
Name Age
0 M.S.Dhoni 36
1 A.B.D Villers 38
2 V.Kohli 31
3 S.Smith 34
4 C.Gayle 40
5 J.Root 33
6 K.Peterson 42
В приведенном выше примере мы вырезали столбцы из фрейма данных.
C. Выбор определенной ячейки в фрейме данных в Python
specific_cell_value = df.iloc[2, 3]
print("Specific Cell Value:", specific_cell_value)
Вывод:
Specific Cell Value: 8428000
D. Использование логических условий в фрейме данных в Python
filtered_data = df[df['Age'] > 35].iloc[:, :]
print("\nFiltered Data based on Age > 35:\n", filtered_data)
Вывод:
Filtered Data based on Age > 35:
Name Age Weight Salary
0 M.S.Dhoni 36 75 5428000
1 A.B.D Villers 38 74 3428000
4 C.Gayle 40 100 4528000
6 K.Peterson 42 85 2528000
2. Нарезка с использованием loc[]
Мы также можем реализовать нарезку через loc, но есть некоторые ограничения:
loc
Он полагается на метки, и если в вашем DataFrame есть пользовательские метки, вам нужно быть осторожным при их указании.- Если метки являются целыми числами, может возникнуть путаница между использованием целых чисел в качестве позиций и фактическими метками.
Для этого нам нужно вручную установить индекс в виде меток с помощью следующего кода:
df_custom = df.set_index('Name')
df_custom
Вывод:
Age Weight Salary
Name
M.S.Dhoni 36 75 5428000
A.B.D Villers 38 74 3428000
V.Kohli 31 70 8428000
S.Smith 34 80 4428000
C.Gayle 40 100 4528000
J.Root 33 72 7028000
K.Peterson 42 85 2528000
A. Нарезка строк в фрейме данных в Python
sliced_rows_custom = df_custom.loc['A.B.D Villers':'S.Smith']
sliced_rows_custom
Вывод:
Age Weight Salary
Name
A.B.D Villers 38 74 3428000
V.Kohli 31 70 8428000
S.Smith 34 80 4428000
B. Выбор указанной ячейки в фрейме данных в Python
specific_cell_value = df_custom.loc['V.Kohli', 'Salary']
print("\nValue of the Specific Cell (V.Kohli, Salary):", specific_cell_value)
Заключение
Таким образом, и iloc[], и loc[] предоставляют в Pandas универсальные возможности нарезки. В то время как iloc[] работает с целыми числами, loc[] использует метки, что требует внимательного подхода при работе с пользовательскими индексами или смешанными типами данных.