Часто вам может понадобиться выбрать столбцы кадра данных pandas на основе их значения индекса.
Если вы хотите выбрать столбцы на основе целочисленного индексирования, вы можете использовать функцию .iloc .
Если вы хотите выбрать столбцы на основе индексации меток, вы можете использовать функцию .loc .
В этом руководстве представлен пример использования каждой из этих функций на практике.
Пример 1: выбор столбцов на основе целочисленного индексирования
В следующем коде показано, как создать кадр данных pandas и использовать .iloc для выбора столбца с целочисленным значением индекса 3 :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B'],
'points': [11, 7, 8, 10, 13, 13],
'assists': [5, 7, 7, 9, 12, 9],
'rebounds': [11, 8, 10, 6, 6, 5]})
#view DataFrame
df
team points assists rebounds
0 A 11 5 11
1 A 7 7 8
2 A 8 7 10
3 B 10 9 6
4 B 13 12 6
5 B 13 9 5
#select column with index position 3
df.iloc [:, 3]
0 11
1 8
2 10
3 6
4 6
5 5
Name: rebounds, dtype: int64
Мы можем использовать аналогичный синтаксис для выбора нескольких столбцов:
#select columns with index positions 1 and 3
df.iloc [:, [1, 3]]
points rebounds
0 11 11
1 7 8
2 8 10
3 10 6
4 13 6
5 13 5
Или мы могли бы выбрать все столбцы в диапазоне:
#select columns with index positions in range 0 through 3
df.iloc [:, 0:3]
team points assists
0 A 11 5
1 A 7 7
2 A 8 7
3 B 10 9
4 B 13 12
5 B 13 9
Пример 2. Выбор столбцов на основе индексации меток
В следующем коде показано, как создать кадр данных pandas и использовать .loc для выбора столбца с меткой индекса «rebounds» :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B'],
'points': [11, 7, 8, 10, 13, 13],
'assists': [5, 7, 7, 9, 12, 9],
'rebounds': [11, 8, 10, 6, 6, 5]})
#view DataFrame
df
team points assists rebounds
0 A 11 5 11
1 A 7 7 8
2 A 8 7 10
3 B 10 9 6
4 B 13 12 6
5 B 13 9 5
#select column with index label 'rebounds'
df.loc[:, 'rebounds']
0 11
1 8
2 10
3 6
4 6
5 5
Name: rebounds, dtype: int64
Мы можем использовать аналогичный синтаксис для выбора нескольких столбцов с разными метками индекса:
#select the columns with index labels 'points' and 'rebounds'
df.loc[:, ['points', 'rebounds']]
points rebounds
0 11 11
1 7 8
2 8 10
3 10 6
4 13 6
5 13 5
Или мы могли бы выбрать все столбцы в диапазоне:
#select columns with index labels between 'team' and 'assists'
df.loc[:, 'team ':' assists']
team points assists
0 A 11 5
1 A 7 7
2 A 8 7
3 B 10 9
4 B 13 12
5 B 13 9
Связанный: Pandas loc против iloc: в чем разница?
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как сгруппировать по индексу в Pandas DataFrame
Как выбрать строки по индексу в Pandas DataFrame
Как получить номера строк в кадре данных Pandas
Как удалить столбец индекса в Pandas DataFrame