Интересный вопрос.
К сожалению, Series.str.extract
получит запись довольно легко, но не удалит ее (используя наивное регулярное выражение, не стесняйтесь использовать более сложное весли команда имеет (...)
в своем названии):
df['Record'] = df['Team'].str.extract('(\(.*?\))')
print(df)
# Rank Team record
# 0 1 LA Rams (5-0) (5-0)
# 1 2 New Orleans (4-1) (4-1)
# 2 3 New England (3-2) (3-2)
# 3 4 Kansas City (5-0) (5-0)
# 4 5 Pittsburgh (2-2-1) (2-2-1)
# 5 6 Baltimore (3-2) (3-2)
Это потребует реализации нашей собственной функции:
import re
record_regex = re.compile(r'(\(.*?\))')
records = []
def extract_and_remove_record(x):
record = record_regex.findall(x)[0]
records.append(record)
return record_regex.sub('', x)
df['Team'] = df['Team'].apply(extract_and_remove_record)
df['Record'] = records
print(df)
# Rank Team Records
# 0 1 LA Rams (5-0)
# 1 2 New Orleans (4-1)
# 2 3 New England (3-2)
# 3 4 Kansas City (5-0)
# 4 5 Pittsburgh (2-2-1)
# 5 6 Baltimore (3-2)