d_hsp={"1":"I","2":"II","3":"III","4":"IV","5":"V","6":"VI","7":"VII","8":"VIII",
"9":"IX","10":"X","11":"XI","12":"XII","13":"XIII","14":"XIV","15":"XV",
"16":"XVI","17":"XVII","18":"XVIII","19":"XIX","20":"XX","21":"XXI",
"22":"XXII","23":"XXIII","24":"XXIV","25":"XXV"}
HSP_OLD['tryl'] = HSP_OLD['tryl'].replace(d_hsp, regex=True)
HSP_OLD
是一个数据帧,tryl
是HSP_OLD
的一列,tryl
中的一些值示例:
SAF/HSP: Secondary diagnosis E code 1
SAF/HSP: Secondary diagnosis E code 11
我用字典代替,它适用于1-10,但是对于11,它将变成“II”,对于12,它将变成“III”。在
您需要保持项目的顺序,并开始搜索最长的子字符串。在
您可以在这里使用
OrderDict
。要初始化它,请使用元组列表。在初始化时,您可以在这里反转它,但以后也可以这样做。在抱歉,我没注意到你不仅仅是在更新字段,还想在结尾处替换一个数字,但是即使是这样,把你的数字正确地转换成罗马数字比映射每一个可能出现的数字要好得多(如果一个数字大于25,你的代码会发生什么?)。所以,有一种方法可以做到:
现在,如果我们将数据帧创建为:
^{pr2}$我们无法轻松地将我们的函数应用于整列:
结果是:
当然,您可以根据需要调整
romanize()
函数来搜索字符串中的任何数字并将其转换为罗马数字—这只是一个如何快速找到字符串末尾的数字的示例。在相关问题 更多 >
编程相关推荐