采用以下形式的pandas数据框:
fname lname age
mark trumb 34
samb jones 26
我想使用requests模块构建一个url查询。 通常情况下,我会像这样构建网址:
payload = {'key1':'value1','key2':'value2'}
headers = {'content-type': 'application'}
base_url = 'https://website.com/'
req = requests.post(base_url,headers=headers,params=payload)
我如何最好地使用它,以便数据帧列成为键,行成为值?
新的输出列(req)如下所示:
fname lname age req
mark trumb 34 https://website.com?fname=mark&lname=trumb&age=34
samb jones 26 https://website.com?fname=samb&lname=jones&age=26
答案 0 :(得分:1)
您可以像这样构建它:
In [46]:
df['req'] = 'https://website.com?' + 'fname=' + df['fname'] + '&lname=' + df['lname'] + '&age=' + df['age'].astype(str)
df
Out[46]:
fname lname age req
0 mark trumb 34 https://website.com?fname=mark&lname=trumb&age=34
1 samb jones 26 https://website.com?fname=samb&lname=jones&age=26
动态方法可以通过将列名与值相结合来完成:
In [106]:
def func(x):
tuple_list = list(zip('&' + x.index + '=', x.astype(str)))
return ''.join([''.join(item) for item in tuple_list])
df['req'] = r'https://website.com?' + df.apply(lambda x: func(x), axis=1)
df['req']
Out[106]:
0 https://website.com?&name=mark&lname=trumb&age=34
1 https://website.com?&name=samb&lname=jones&age=26
Name: req, dtype: object