【问题标题】:Replace substring in string using python使用python替换字符串中的子字符串
【发布时间】:2016-09-17 17:01:00
【问题描述】:

我有csv 数据

url
vk.com/feed
vk.com/friends
vk.com/kobrinsky
vk.com/exclusive_muzic
vk.com/o_gordievskaya
vk.com/exclusive_muzic
vk.com/o_gordievskaya

我需要替换一些子字符串。

[u'o_gordievskaya', u'pavel__pechenkin', u'tima555102', u'bl2225554445']

[23183634, 86313977, 27313686, 3935697]

我试试

users = pd.read_excel('users.xlsx')
data = pd.read_csv('get_id.csv', error_bad_lines=False)
scrname = users['scrname']
id_scr = users['id']
urls = data['url']
for url in urls:
    for scr in scrname:
        if scr in url:
            url.replace(scr, id_scr)

我将列 scrnameid 添加到列表中,我认为这会更容易,但这对我没有帮助

【问题讨论】:

  • 您遇到的错误是什么?您当前的解决方案有什么问题?

标签: python string excel loops


【解决方案1】:

它不起作用,因为在for url in urls: 中,url 是您数据的副本。

但既然你用的是pandas,你可以简单地用replace

sub = {'o_gordievskaya' :23183634, 'pavel__pechenkin' : 86313977, ...}
data.replace(sub)

【讨论】:

    【解决方案2】:

    您在替换中使用id_scr,但您需要使用相应的元素

    index = url.index(scr)    
    url.replace(scr, id_scr[index])
    

    或更短:

    url.replace(scr, id_scr[url.index(scr)])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-12
      • 2016-12-24
      • 2021-06-13
      • 2017-03-23
      • 2012-04-03
      • 2013-07-23
      相关资源
      最近更新 更多