我想在dataframe df的每一行中将'^‘替换为’‘(空格),然后在每行中找到唯一的单词。
谢谢
ID Text
0 B07HFHF2ZM NaN
1 B07HFK5V4K handloom saree^handloom cotton sarees^bengal h...
2 B07HFKHRTL tantuja bengal handloom sarees^handloom saree^...
3 B07HFKLPL5 handloom sarees cotton bengal^bengal cotton sa...
4 B07HFKXWW3 cotton saree^bengal cotton sarees for women^ta...
5 B07HFL8J2D tantuja bengal handloom sarees^handloom saree^...
6 B07HZY27MF cotton saree^tantuja bengal handloom sarees^co...
7 B07HZZCH28 tantuja^tantuja bengal handloom sarees^cotton ...
8 B07J163MGJ tangail saree handloom cotton^black cotton sar...
9 B07J191MR4 tantuja saree^bengal cotton sarees for women^b...发布于 2019-05-07 20:26:59
关于替补,你们已经很接近了。
这应该是可行的:
df['Text 2'] = pd.Series(map(lambda x: str(x).replace("^"," "), df['Text']))在python3 map创建生成器时,您必须运行生成器才能获得结果。通常您可以使用list(map(...)),但在这种情况下,pandas.Series更可取,因为您希望创建一个dataframe列。
我还需要将x.str.replace更改为str(x).replace以使其正常工作,并将"c"更改为" "。如果需要空格,请使用空格,而不是'c‘字符。
要查找唯一的单词,可以使用Counter
from collections import Counter
for row in df['Text2']:
wordcounter = Counter(row.split())
for w, i in wordcounter.items():
if i == 1:
print(w, end=' ')
print('')这将为每一行打印所有唯一的单词(出现一次的单词)。
如果你需要所有的单词(跳过重复),你可以使用set代替。
for row in df['Text2']:
wordcounter = set(row.split())
print(wordcounter)当然,您可以将它们添加到列表中,而不是打印,这取决于您想要如何处理这些独特的单词。
https://stackoverflow.com/questions/56021834
复制相似问题