Panda和python的新手,因此仍然可以学习绳索。但是,我正在研究如何格式化导入的excel信息。
我的地址栏中有几个地址,其格式为“ St Street'S”。因此,它的末尾带有这个笨拙的大写字母。最初,我认为这可以通过仅使用格式将小写的'格式解决。但是,我对自己的信息进行了深入研究,并意识到我可以这样做,因为某些地址在此之后确实需要大写。
因此,我想知道,我需要编写什么代码,以便之后的下一个字符不是空值? (St Street'S)?
希望这个问题能够解决,现在将尝试发布一些代码,但是作为新手我怀疑它是否在附近。预先谢谢你!
答案 0 :(得分:0)
不确定我是否100%理解,但是我认为您仍然可以使用正则表达式来做到这一点。例如:
df['Address'].str.replace("\'S", "'s", regex=True)
更新:
如果需要将其保存到df ['Address']中,则需要添加inplace = True,如下所示:
df.Address.replace(r"\'S", "'s", regex=True, inplace=True)
这将导致以下结果:
Address
0 Some Street'S
df.Address.replace(r"\'S", "'s", regex=True)
0 Some Street's
答案 1 :(得分:0)
您可以进行简单的正则表达式替换,以获取所需格式的数据。
查找模式“(\ w +?\'??)S”,然后按如下所示替换它:
re.sub(r'(\w+?\'?)S', r'\1s', input)
模式如下:
\ w +? -从1到无穷大的任意数量的单词字符,选择最少的匹配模式
\'? -尝试匹配单引号(如果存在),或者可能被忽略
S-匹配字符S区分大小写。
那么您所替换的是最后一个带s的S
答案 2 :(得分:0)
在python中,字符串是字符列表。了解tat之后,您可以找到撇号'
的索引,检查其后是否跟大写字母S
,并检查后是否有空值。像这样:
street = "St Street'S"
index = street.index('\'')
if street[index + 1] == 'S' and street[index + 2] == empty_value:
street = street[:-1] + street[-1].lower()
我唯一不了解的问题是“ empty_value”是什么意思?