我的数据集包含“高级关键字”列,并且包含多个以“ \ n”分隔的关键字。我想根据这些关键字对数据进行分组。
我尝试使用函数unique(),但对“多语言系统”,“多语言系统\ n机器学习”和“机器学习”的处理不同。
我希望输出为:
多语言-2
机器学习-2
但是我得到的是
多语言-1
机器学习-1
多语言\ n机器学习-1
您能建议采取一些相同的方法吗?
答案 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