Есть ли функция для разделения строк в кадре данных, если один из столбцов содержит более одного ключевого слова? - PullRequest
0 голосов
/ 05 апреля 2019

Мой набор данных содержит столбец «Ключевые слова высокого уровня» и содержит несколько ключевых слов, разделенных знаком \ n. Я хочу сгруппировать данные на основе этих ключевых слов.

Я пытался использовать функцию unique (), но она по-разному относится к «Многоязыковым системам», «Многоязыковым системам \ nМашинному обучению» и «Машинному обучению».

Я хочу, чтобы вывод был таким:

Многоязычный - 2

Машинное обучение -2

но я получаю

Мультиязычный - 1

Машинное обучение - 1

Multilangant \ nMachine Learning - 1

Можете ли вы предложить какой-нибудь способ сделать то же самое?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

это то, что вы хотите?

import pandas as pd

df= pd.DataFrame({"High-Level-Keyword(s)":["Multilangant Systems","Multilangant Systems\nMachine Learning","Machine Learning"] })

new = df["High-Level-Keyword(s)"].str.split("\n", n=1, expand= True)

df["left"]= new[0]
df["right"]=new[1]
df2 = pd.concat([df["left"], df["right"]])
df2.value_counts()




#Multilangant Systems    2
#Machine Learning        2
#dtype: int64
0 голосов
/ 05 апреля 2019

Вы должны .split на разделителе, а затем считать.

from collections import Counter
from itertools import chain

Counter(chain.from_iterable(df["High-Level-Keyword(s)"].str.split('\n')))
#Counter({'Machine Learning': 2, 'Multilangant': 2})

Или сделай серию:

import pandas as pd
pd.Series(Counter(chain.from_iterable(df["High-Level-Keyword(s)"].str.split('\n'))))
#Multilangant        2
#Machine Learning    2
#dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...