如果某列中的一个包含多个关键字,是否可以在数据框中拆分行?

时间:2019-04-05 18:45:43

标签: python pandas dataframe data-analysis

我的数据集包含“高级关键字”列,并且包含多个以“ \ n”分隔的关键字。我想根据这些关键字对数据进行分组。

我尝试使用函数unique(),但对“多语言系统”,“多语言系统\ n机器学习”和“机器学习”的处理不同。

我希望输出为:

多语言-2

机器学习-2

但是我得到的是

多语言-1

机器学习-1

多语言\ n机器学习-1

您能建议采取一些相同的方法吗?

2 个答案:

答案 0 :(得分:0)

您应该.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

答案 1 :(得分:0)

这是你想要的吗?

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