Взять первые три слова одного столбца в кадре данных и скопировать их в новый столбец - PullRequest
1 голос
/ 11 октября 2019

Это кажется действительно простым, но я нахожу его на удивление трудным для решения. У меня есть столбец (столбец A), содержащий строки, и я хочу взять первые три слова этой строки и скопировать их в новый столбец (столбец B).

У меня есть это:

col A
Mr Spaghetti Bolognese Piazza Palace
Ms Tagliatelle Carbonara The Real Home of Pasta
Miss Linguine Amatraciana Time to Eat

Я хочу взять имя из первого столбца (т. Е. Первые три слова в строке) и скопировать их в новый столбец, например так:

col A                                             col B
Mr Spaghetti Bolognese Piazza Palace              Mr Spaghetti Bolognese
Ms Tagliatelle Carbonara The Real Home of Pasta   Ms Tagliatelle Carbonara
Miss Linguine Amatraciana Time to Eat             Miss Linguine Amatraciana

Я начал с d ['col A ']. split (' '), которая казалась подходящим местом для начала, но я просто не могу получить доступ к первым трем словам! Любая помощь, высоко ценится!

Ответы [ 3 ]

3 голосов
/ 11 октября 2019

Вы можете сделать это, используя функцию str только как

df["col B"] = df["col A"].str.split().str[:3].str.join(sep=" ")
df
2 голосов
/ 11 октября 2019

Вы можете сделать это, используя однострочную строку:

df['frist_three_words'] = df['col A'].str.split(' ').apply(lambda x: "{} {} {}".format(*x[:3]))

Сначала я разделяю строки, а затем я использую apply с лямбда-функцией. Вы можете легко изменить стиль форматирования текста.

2 голосов
/ 11 октября 2019

попробуй

df['col B'] = df['col A'].apply(lambda x: ' '.join(x.split(' ')[:3]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...