Pandas: как выбрать столбцы, содержащие определенную строку


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

Способ 1: выберите столбцы, содержащие определенную строку

 df. filter (regex=' string1 ')

Способ 2. Выберите столбцы, содержащие одну из нескольких строк.

 df. filter (regex=' string1|string2|string3 ')

В следующих примерах показано, как использовать каждый из этих методов на практике со следующим DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' mavs ': [10, 12, 14, 15, 19, 22, 27],
                   ' cavs ': [18, 22, 19, 14, 14, 11, 20],
                   ' hornets ': [5, 7, 7, 9, 12, 9, 14],
                   ' spurs ': [10, 12, 14, 13, 13, 19, 22],
                   ' net ': [10, 14, 25, 22, 25, 17, 12]})

#view DataFrame
print (df)

   mavs cavs hornets spurs nets
0 10 18 5 10 10
1 12 22 7 12 14
2 14 19 7 14 25
3 15 14 9 13 22
4 19 14 12 13 25
5 22 11 9 19 17
6 27 20 14 22 12

Пример 1. Выбор столбцов, содержащих определенную строку

Следующий код показывает, как использовать функцию filter() для выбора только тех столбцов, которые содержат строку «avs» где-то в своем имени:

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs ')

#view DataFrame
print (df2)

   mavs cavs
0 10 18
1 12 22
2 14 19
3 15 14
4 19 14
5 22 11
6 27 20

Возвращаются только столбцы с именем «avs».

В этом случае возвращаются только столбцы «mavs» и «cavs».

Пример 2. Выберите столбцы, содержащие одну из нескольких строк.

Следующий код показывает, как использовать функцию filter() для выбора только тех столбцов, которые содержат «avs» или «ets» где-то в своем имени:

 #select columns that contain 'avs' in the name
df2 = df. filter (regex=' avs|ets ')

#view DataFrame
print (df2)

   mavs cavs hornets nets
0 10 18 5 10
1 12 22 7 14
2 14 19 7 25
3 15 14 9 22
4 19 14 12 25
5 22 11 9 17
6 27 20 14 12

Возвращаются только столбцы с именем «avs» или «ets».

Обратите внимание, что вертикальная черта ( | ) — это оператор « ИЛИ » в pandas.

Не стесняйтесь объединять столько операторов «ИЛИ», сколько хотите, для выбора столбцов, содержащих одну из множества разных строк.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Pandas: как переместить столбец перед DataFrame
Pandas: как проверить, содержит ли столбец строку
Pandas: как добавить пустой столбец в DataFrame (3 примера)

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

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