按字母顺序对查询中的单词进行排序,并从各个行中删除重复的单词

2024-06-11 06:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从Pandas DataFrame的每一行中对给定查询的单词进行排序,然后从中删除重复项。如何分别对每行执行此任务,例如: 给定数据帧:

Sr.No | Query
-------------
1.    war gears of war
2.    call of duty
3.    legend of troy legend
4.    resident evil

结果数据帧应为:

^{pr2}$

我使用分割函数首先分割数据帧的每一行的字,但它不起作用。在

^{3}$

我得到以下错误:

cannot set using a list-like indexer with a different length than the value.


Tags: of数据nodataframepandas排序callquery
2条回答

首先可以使用^{}和{a2}创建{}:

s = df.col.str.split(expand=True).stack()
print (s)
0  0         war
   1       gears
   2          of
   3         war
1  0        call
   1          of
   2        duty
2  0      legend
   1          of
   2        troy
   3      legend
3  0    resident
   1        evil
dtype: object

然后按第一级groupby并使用^{}应用^{}。最后join所有单词:

^{pr2}$

设置

df = pd.DataFrame([
        ['war gears of war'],
        ['call of duty'],
        ['legend of troy legend'],
        ['resident evil'],  
    ], pd.Index(['1.', '2.', '3.', '4.'], name='Sr.No'), ['Query'])

df

enter image description here

解决方案

^{pr2}$

enter image description here

相关问题 更多 >