这可能是非常基础的,但我一直在努力解决它。
我有这样的东西:
一个 = ['L', 'K', 'M']
两个 = ['P', 'N', 'S']
我还有一个字符串,假设它类似于“Look at Me”,我想将其转换为“PooN at Se”。我的想法是遍历字符串的每个字母,并遍历第一个列表,比较两者,如果它们匹配,则只需将字符串中匹配的字母替换为列表中的某个字母这是列表二中的一对。
循环被证明是非常低效的,因为我正在处理大文本。
我正在访问的字符串实际上是 pandas 数据框中的行:
data = pd.read_csv('train.txt', delimiter='\t', header=None, names=['category', 'text'], dtype=str)
和print data.head() 给出类似的东西:
0 MUSIC 今天在录音室,John... 1 政治 政府内部的紧张局势已经...... 2 新闻 NASA 的新图片显示...
我把文本分开
text = data['text']
这里的诀窍是,我实际上是在处理用西里尔文编写的文本,我不能使用任何函数来降低大写字母,这是我的目标。我遇到的最好的问题是我在顶部介绍的问题,只需找到每个大写字母并将其替换为等效的小写字母。
有什么建议吗?
请您参考如下方法:
看来你需要replace :
print (data)
text
0 MUSIC Today at the recording studio, John
1 POLITICS The tensions inside the government have
2 NEWS The new pictures of NASA show
one = ['L', 'K', 'M']
two = ['P', 'N', 'S']
data['text'] = data['text'].replace(one, two, regex=True)
print (data)
text
0 SUSIC Today at the recording studio, John
1 POPITICS The tensions inside the government have
2 NEWS The new pictures of NASA show
