gpt4 book ai didi

Python Pandas - 如何格式化和拆分列中的文本?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:16 24 4
gpt4 key购买 nike

我在数据框中有一组字符串,如下所示

ID TextColumn
1 This is line number one
2 I love pandas, they are so puffy
3 [This $tring is with specia| characters, yes it is!]

一个。我想格式化这个字符串以消除所有特殊字符B. 格式化后,我想得到一个唯一单词列表(空格是唯一的分隔符)

这是我写的代码:

get_df_by_id 数据帧有一个选定的帧,比如说 ID 3。

#replace all special characters
formatted_title = get_df_by_id['title'].str.replace(r'[\-\!\@\#\$\%\^\&\*\(\)\_\+\[\]\;\'\.\,\/\{\}\:\"\<\>\?]' , '')
# then split the words
results = set()
get_df_by_id['title'].str.lower().str.split().apply(results.update)
print results

但是当我检查输出时,我可以看到特殊字符仍在列表中。

Output

set([u'[this', u'is', u'it', u'specia|', u'$tring', u'is!]', u'characters,', u'yes', u'with'])

预期的输出应该如下所示:

set([u'this', u'is', u'it', u'specia', u'tring', u'is', u'characters,', u'yes', u'with'])

为什么格式化的数据框仍然保留特殊字符?

最佳答案

我觉得你可以先replace特殊字符(我在末尾添加 \|),然后是 lower文本,split通过 \s+(任意 wtitespaces)。输出是数据帧。所以你可以stack它到系列drop_duplicates最后tolist :

print (df['title'].str
.replace(r'[\-\!\@\#\$\%\^\&\*\(\)\_\+\[\]\;\'\.\,\/\{\}\:\"\<\>\?\|]','')
.str
.lower()
.str
.split('\s+', expand=True)
.stack()
.drop_duplicates()
.tolist())

['this', 'is', 'line', 'number', 'one', 'i', 'love', 'pandas', 'they', 'are',
'so', 'puffy', 'tring', 'with', 'specia', 'characters', 'yes', 'it']

关于Python Pandas - 如何格式化和拆分列中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com