在python中嵌套for循环以替换url中的字符串

时间:2018-02-02 02:17:52

标签: python-3.x loops for-loop url replace

我有一个网址,我需要在其中替换4个参数。第一个参数已设置(值= 3),另外3个基于将每个参数替换为给定DataFrame的特定列的每一行。

我可以分别为3个参数中的每个参数进行替换,但是它的完成方式不会立即替换所有参数。我希望能够做的是立即替换所有这些以生成多个URL。

CODE:

import pandas as pd

url = 'https://parameter1 = replace1, parameter2 = replace2, parameter3 = replace3, parameter4 = replace4'
df = pd.DataFrame({ 'A' : ('foo1', 'foo2', 'foo3'),'B' : (1,2,3), 'C' : ('text1', 'text2', 'text3')})
value = '3'

for i in df['A']:
    new_url = url.replace("replace1", value)
    new_url = new_url.replace("replace2", i)
    print(new_url)

for j in df['B']:
    new_url = url.replace("replace1", value)
    new_url = new_url.replace("replace3", str(j))
    print(new_url)

for k in df['C']:
    new_url = url.replace("replace1", value)
    new_url = new_url.replace("replace3", k)
    print(new_url)

我想要的输出如下:

需要输出:

url = 'https://parameter1 = 3, parameter2 = foo1, parameter3 = 1, parameter4 = text1'
url = 'https://parameter1 = 3, parameter2 = foo2, parameter3 = 2, parameter4 = text2'
url = 'https://parameter1 = 3, parameter2 = foo3, parameter3 = 3, parameter4 = text3'

如果有人能帮助我,我真的很感激!谢谢。

1 个答案:

答案 0 :(得分:1)

为什么不为您的数据框添加url列?

import pandas as pd

url = 'https://parameter1 = replace1, parameter2 = replace2, parameter3 = replace3, parameter4 = replace4'
df = pd.DataFrame({ 'A' : ('foo1', 'foo2', 'foo3'),'B' : (1,2,3), 'C' : ('text1', 'text2', 'text3')})
value = '3'

df['value'] = value
df['url'] = 'https://parameter1 = '+ df['value'].astype(str) +', parameter2 = '+ df['A'].astype(str) +', parameter3 = '+ df['B'].astype(str) +', parameter4 = ' + df['C'].astype(str)

print(df)

我认为这是一个相当概念化的问题,因为url不能包含文字空间。