Python pandas将dict键映射到值

2024-06-17 10:05:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv作为输入,它的行值我想加入到一个新的字段中。这个新字段是一个构造的url,然后由请求.post()方法。在

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

以下是我所拥有的:

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')

我试图用dict理解将值映射到键,但是像FIRST_NAME这样的键的赋值可能最终映射到来自test_df['CITY']这样的任意字段的值。在


Tags: csvnametestimporturlcitydfdata
1条回答
网友
1楼 · 发布于 2024-06-17 10:05:07

不确定我是否正确地理解了这个问题。但是,您可以给to_dict函数提供参数,例如

data = test_df.to_dict(orient='records')

它将给出如下输出:[{'FIRST_NAME': ..., 'LAST_NAME': ...}, {'FIRST_NAME': ..., 'LAST_NAME': ...}](这将给您一个长度与test_df)相等的列表。这可能是一种很容易将其映射到正确行的可能性。在

相关问题 更多 >