使用数据框中的set删除列表中的重复单词时,单词发生了更改(与顺序无关)

2024-10-03 19:22:38 发布

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

我在数据帧中使用set来删除列表中的重复单词,但是结果中原来的单词发生了变化

以下是dataframe中显示的单词:

[其中一种快速溶解于水、糖、盐、甲烷和碳、二、氧化物、?]

注:像“糖”和“盐”这样的词用逗号

这些是使用set后在dataframe中显示的结果: {氧化物,糖,其中,二,水,在,,盐,碳,溶解,一,?,甲烷,迅速,和}

data['sent1']=data['sent1'].apply(lambda x : set(x))

我希望单词在使用set后保持相同的顺序。 我真的很纳闷为什么set会把原来的单词(从‘sugar,’改成‘sugar’)


Tags: 数据lambdadataframe列表data顺序sugar单词
1条回答
网友
1楼 · 发布于 2024-10-03 19:22:38

如果数据框中的每一行如下所示:

data.loc[0, "sent1"] = ["Which", "one", "dissolve", "in", "water", "quickly", "sugar", ",", "salt", ",", "methane", "and", "carbon", "di", "oxide", "?"]

然后可以在应用set操作之前附加逗号,如:

data['sent1'] = data['sent1'].apply(lambda x: set([i + "," for i in x]))

另一方面,“data['sent1']``中的每一行都是一个长字符串:

data.loc[0, "sent1"] = ["Which", "one", "dissolve", "in", "water", "quickly", "sugar", ",", "salt", ",", "methane", "and", "carbon", "di", "oxide", "?"]

然后尝试:

data['sent1'] = data['sent1'].apply(lambda x: set(x.split(" ")))

相关问题 更多 >