问题数据
df = pd.DataFrame({'Keyword': ['basement finishing systems akron pa', 'basement finishing systems biglerville pa', 'basement finishing systems chambersburg pa', 'basement finishing systems christiana pa', 'basement finishing systems delta pa'], 'StemmedKW': [['basement', 'finish', 'system', 'akron', 'pa'], ['basement', 'finish', 'system', 'biglervil', 'pa'], ['basement', 'finish', 'system', 'chambersburg', 'pa'], ['basement', 'finish', 'system', 'christiana', 'pa'], ['basement', 'finish', 'system', 'delta', 'pa']], 'Ad Group': ['Finishing System', 'Finishing System', 'Finishing System', 'Finishing System', 'Finishing System'], 'Campaign': ['Campaign A', 'Campaign A', 'Campaign A', 'Campaign A', 'Campaign A'], 'StemmedAG': [['finish', 'system'], ['finish', 'system'], ['finish', 'system'], ['finish', 'system'], ['finish', 'system']]}, columns=['Campaign', 'Ad Group', 'Keyword', 'StemmedAG', 'StemmedKW'])
数据帧如下所示
^{pr2}$上下文
StemmedAG
和{Ad Group
和Keyword
列生成这些列。目标是在Keyword
列中的关键字前面加一个加号Keyword
,表示出现在StemmedAG
和{
结果
注意row 0
Keyword
的值是basement +finishing +systems akron pa
?这是因为单词finish
和system
都出现在StemmedAG
和{Keyword
列中的非词干单词的前面。在
Campaign Ad Group Keyword \
0 Campaign A Finishing System basement +finishing +systems akron pa
1 Campaign A Finishing System basement +finishing +systems biglerville pa
2 Campaign A Finishing System basement +finishing +systems chambersburg pa
3 Campaign A Finishing System basement +finishing +systems christiana pa
4 Campaign A Finishing System basement +finishing +systems delta pa
StemmedAG StemmedKW
0 ['finish', 'system'] ['basement', 'finish', 'system', 'akron', 'pa']
1 ['finish', 'system'] ['basement', 'finish', 'system', 'biglervil', ...
2 ['finish', 'system'] ['basement', 'finish', 'system', 'chambersburg...
3 ['finish', 'system'] ['basement', 'finish', 'system', 'christiana',...
4 ['finish', 'system'] ['basement', 'finish', 'system', 'delta', 'pa']
我不习惯在Pandas列中使用lists
,也不知道如何从dataframe
的两列中得到lists
的交集,然后得到单词出现的索引,然后在每个找到的索引的前面加上加号。或者更简单的方法是使用StemmedAG
中的单词对df['Keyword']
进行字符串替换?在
我也希望尽可能多地使用pandas方法来实现这一点,并避免for
循环。在
我想出了如何用非熊猫的方法来实现这一点,但这很糟糕。我真的很想学习如何用熊猫来做这件事(如果可能的话!)在
相关问题 更多 >
编程相关推荐