Pandas: як отримати підрядок цілого стовпця


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

 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

Ми можемо використати наступний синтаксис, щоб створити новий стовпець, який містить символи зі стовпця team між позиціями 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 містить символи зі стовпця team між позиціями 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: як вибрати стовпці, що містять певний рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *