Python 用字典代替俚语
为了解决我的问题,我一直在遵循此链接,但我在这一过程中遇到了困难: 我有一个超过20000行的系列,每行有文本字符串(短消息)。以及键和值的字典,因此每当序列词与字典中的键匹配时,我希望用字典中的值替换序列词: 这是我的密码:Python 用字典代替俚语,python,Python,为了解决我的问题,我一直在遵循此链接,但我在这一过程中遇到了困难: 我有一个超过20000行的系列,每行有文本字符串(短消息)。以及键和值的字典,因此每当序列词与字典中的键匹配时,我希望用字典中的值替换序列词: 这是我的密码: import pandas as pd df = pd.read_csv("file.csv") dictionary = {'u': 'you','pic':'picture', .....} list_string = the_string['message'].
import pandas as pd
df = pd.read_csv("file.csv")
dictionary = {'u': 'you','pic':'picture', .....}
list_string = the_string['message'].str.split()
for i,word in enumerate(list_string):
if word in the_dictionary.keys():
list_string[i] = the_dictionary[word]
当我运行这段代码时,除了序列没有更新之外,我没有得到任何错误。我错过了什么?我还在学习python,所以我被困在这里了
当运行此程序时,我不会得到任何错误,除非该系列没有得到更新
什么东西没有得到更新<代码>列表字符串或字符串
?'因为抛开您声明dictionary
然后在循环中使用u dictionary
的事实不谈,它确实会更新我这边的list\u string
。如果您想也更新\u字符串
,那么您还需要更新它-您可以这样做:
the_string = " ".join(list_string)
但是,请注意,您当前的支票没有考虑大小写,这意味着您将把
u
固定到you
,但是u
不会变成you
您不会在第一个代码片段中关闭字符串。请先解决您的问题。@WillemVanOnsem-ok什么没有更新,列表list\u字符串
或原始字符串字符串['message']
?它应该更新列表。对于字符串,使用'.join(list\u string)
BTW,您可以将循环简化为list\u string=[the\u dictionary.get(word,word)For word in list\u string]
@tobias:list\u string