我的数据集包含"高级关键字"列,并且包含多个以""分隔的关键字。我想根据这些关键字对数据进行分组。
我尝试使用函数unique((,但它对"多语言系统","多语言系统机器学习"和"机器学习"的处理方式不同。
我希望输出如下所示:
多语言 - 2
机器学习 -2
但我得到的是
多语言 - 1
机器学习 - 1
多语言机器学习 - 1
你能建议一些方法来做同样的事情吗?
您应该在分隔符上.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
这是
你想要的吗?
import pandas as pd
df= pd.DataFrame({"High-Level-Keyword(s)":["Multilangant Systems","Multilangant SystemsnMachine 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