Как разделить пробелы вместе со следующим символом в python - PullRequest
1 голос
/ 31 марта 2020

Я использую pandas, пытаюсь преобразовать текст в столбец, разделив столбец (Команды) на Хозяева и Гости, но я получаю следующую ошибку:

"ValueError: Columns must be same length as key" 

Мне удалось разделить столбец «Оценка», так как в нем был только один «-», что было довольно просто. Не знаю, как go разбить столбец Teams, так как я пытался использовать пробел '' вместе с символом 'v'. Любая помощь будет оценена. Спасибо.

Вот пример данных, с которыми я работаю.

df = pd.read_excel('esports.xlsx')
#df.head()
#df[['score','oscore']] = df.Score.str.split("-",expand=True)
df[['team','opp']] = df.Teams.str.split((" "+"v"),expand=True)
df.head()

Ответы [ 3 ]

2 голосов
/ 31 марта 2020

Разделение должно быть сделано с помощью шаблона "v" или, возможно, "\ s + v \ s +". Пример:

import pandas as pd
import numpy as np

data = np.array([
            ["TeamA v Teamb"],
            ["TeamA v Teamb"],
            ["TeamA v Teamb"],
])

df = pd.DataFrame(data, columns = ["Teams"])

df[["TeamA", "TeamB"]] = df.Teams.str.split("\s+v\s+", expand = True)

print(df)

Вывод:

           Teams  TeamA  TeamB
0  TeamA v Teamb  TeamA  Teamb
1  TeamA v Teamb  TeamA  Teamb
2  TeamA v Teamb  TeamA  Teamb
2 голосов
/ 31 марта 2020

Попробуйте

df[['team','opp']] = df.Teams.str.split(" v ",expand=True)
0 голосов
/ 31 марта 2020

Скорее всего, функция split возвращает более или менее 2 столбцов. Можете ли вы проверить, выполнив следующее?

df.Teams.str.split((" "+"v"),expand=True)

Если он возвращает более 2 столбцов, вам просто нужно извлечь нужные столбцы.

...