關鍵字:python
上效果:app
query pv 0 今日新鮮事 10000 1 今日頭條 100 2 北京天氣 2000 3 上海天氣 3000
term pv 0 上海 3000 1 今日 10100 2 北京 2000 3 天氣 5000 4 頭條 100 5 新鮮事 10000
上代碼:spa
import pandas as pd import numpy as np import jieba df = pd.DataFrame({'query':['今日新鮮事','今日頭條','北京天氣','上海天氣'], 'pv':[10000,100,2000,3000]}) #先用jieba切詞 df['query'] = df['query'].apply(lambda x: ','.join(jieba.cut(x))) df = (df.set_index(['pv'])['query'] .str.split(',', expand=True) # query切分並expand成多列 .stack() # 列轉行 .reset_index(level=1, drop=True) # 刪除列對齊後的空值 .reset_index(name='term') .groupby('term').agg({'pv': np.sum}) # pv按term求和 .reset_index())