Pandas: как получить подстроку целого столбца


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

 df[' some_substring '] = df[' string_column ']. str [1:4]

В этом конкретном примере создается новый столбец с именем some_substring , который содержит символы с позиций с 1 по 4 в string_column .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: получить подстроку всего столбца в Pandas

Допустим, у нас есть следующий DataFrame pandas, содержащий информацию о различных баскетбольных командах:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
                   ' points ': [120, 132, 108, 118, 106]})

#view DataFrame
print (df)

        team points
0 Mavericks 120
1 Warriors 132
2 Rockets 108
3 Hornets 118
4 Lakers 106

Мы можем использовать следующий синтаксис для создания нового столбца, содержащего символы из столбца команды между позициями 1 и 4:

 #create column that extracts characters in positions 1 through 4 in team column
df[' team_substring '] = df[' team ']. str [1:4]

#view updated DataFrame
print (df)

        team points team_substring
0 Mavericks 120 ave
1 Warriors 132 arr
2 Rockets 108 ock
3 Hornets 118 orn
4 Lakers 106 ake

Новый столбец с именем team_substring содержит символы из столбца команды между позициями 1 и 4.

Обратите внимание: если вы попытаетесь использовать этот синтаксис для извлечения подстроки из числового столбца, вы получите сообщение об ошибке:

 #attempt to extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. str [:2]

AttributeError: Can only use .str accessor with string values!

Вместо этого вы должны сначала преобразовать числовой столбец в строку, используя astype(str) :

 #extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. astype (str). str [:2]

#view updated DataFrame
print (df)

        team points points_substring
0 Mavericks 120 12
1 Warriors 132 13
2 Rockets 108 10
3 Hornets 118 11
4 Lakers 106 10

На этот раз мы можем успешно извлечь символы с позиций от 0 до 2 из столбца точек , поскольку сначала мы преобразовали их в строку.

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

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

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

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

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