Python pandas将dict键映射到值

时间:2015-10-07 18:19:59

标签: python dictionary pandas

我有一个用于输入的csv,其行值我想加入一个新字段。这个新字段是一个构造的url,然后由requests.post()方法处理。

我正在构建我的url,但我的问题是应该传递给请求的数据对象。当我的字典无序时,如何将正确的值传递给正确的键?如果我需要使用有序的字典,我该如何用我当前的格式正确设置它?

这就是我所拥有的:

import pandas as pd
import numpy as np
import requests

test_df = pd.read_csv('frame1.csv')

headers = {'content-type': 'application/x-www-form-urlencoded'}

test_df['FIRST_NAME'] = test_df['FIRST_NAME'].astype(str)
test_df['LAST_NAME'] =  test_df['LAST_NAME'].astype(str)
test_df['ADDRESS_1'] = test_df['ADDRESS_1'].astype(str)
test_df['CITY'] = test_df['CITY'].astype(str)

test_df['req'] = 'site-url.com?' + '&FIRST_NAME=' + test_df['FIRST_NAME'] + '&LAST_NAME=' + \
    test_df['LAST_NAME'] + '&ADDRESS_1=' + test_df['ADDRESS_1'] + '&CITY=' + test_df['CITY']

arr = test_df.values

d = {'FIRST_NAME':test_df['FIRST_NAME'], 'LAST_NAME':test_df['LAST_NAME'],
    'ADDRESS_1':test_df['ADDRESS_1'], 'CITY':test_df['CITY']}

test_df = pd.DataFrame(arr[0:, 0:], columns=d, dtype=np.str)
data = test_df.to_dict()
data = {k: v for k, v in data.items()}

test_df['raw_result'] = test_df['req'].apply(lambda x: requests.post(x, headers=headers,
    data=data).content)

test_df.to_csv('frame1_result.csv')

我尝试使用字典理解将值映射到键,但是像FIRST_NAME这样的键的赋值可能会最终映射到test_df['CITY']等任意字段的值。

0 个答案:

没有答案