python星号替换_使⽤字典时replace()中的星号问题
(python)-问答-阿⾥。。。
Python 3.7。x windows上。 我在使⽤字典中的place()时遇到了问题,问题是字典值中有星号。 快速上下⽂:我们收集野外植物物种的数据,为了使事情更快,我们使⽤7个字符的“代码”和相应的完整的科学名称。如果是报告⽤的⾮本地物种,名字后⾯会有⼀个星号。例如:Cencili = Cenchrus ciliaris*或Eucpopu = Eucalyptus populnea 字段数据如下(在panda df中):
敬作文
FieldData
椰子螺Location Species
1 Site_1 Uromosa, Chlgaya, Cencili
2 Site_2 Cencili, Sclmuri, Eucpopu, Glaaris, Atahemi
词汇表/定义表是这样的(在转换成字典之前):
SpeciesList
白令海峡有多宽
Code Scientific
1 Cencili Cenchrus ciliaris*
2 Eucpopu Eucalyptus populnea
我尝试:
春风十里不及你
import pandas as pd
import csv, re
FieldData = pd.read_csv('FieldDataPath')
SpeciesList = pd.read_csv('SpeciesListPath')
窃窃丝语SpeciesDict = dict(zip(SpeciesList.Code, SpeciesList.Scientific))
查明的英文for k, v in SpeciesDict.items():
正能量的诗句>吃榴莲好吗FieldData['Species'].replace(k, v, inplace = True, regex = True)
问题是这⾏得通……排序的。如果regex = True是成功替换的物种代码,但是在科学名称的每个字母之间插⼊星号。 洛杉矶:
Location Species
870 Site_1 *C*e*n*c*h*r*u*s* *c*i*l*i*a*r*i*s***,* *S*
如果regex = Fal,则replace()不起作⽤,数据保持不变。 如果我从词汇表中删除星号,它可以正常⼯作,但我需要星号在那⾥。在这个过程之后,我曾想过要单独标记⾮本地物种,但我想我也会遇到同样的问题。 我知道这与正则表达式有关,也知道星号是如何解释的,但我就是想不出来。我到处找,都没找到类似的问题。 长期潜伏者,初次发问者。我希望这个问题符合标准。 问题来源StackOverflow 地址:/questions/59385653/asterisk-issue-in-replace-when-using-a-dictionary-python