循环访问数据帧以填充 API 请求



我有一个数据帧complete,我想遍历每一行并从列的内容构建一个 API 请求,每一行都是一个新请求。

我的请求正文必须如下所示:

body=
{
    'conversion' : [{
        'clickId' : complete['click_id'],
        'conversionId' : complete['conv_id'],
        'conversionTimestamp' : complete['timestamp'],
        'segmentationType' : complete['seg_type'],
        'type': complete['type'],
        'revenueMicros': complete['order_pro'],
        'quantityMillis': complete['quant_mic'],
      }]
}

到目前为止,我已经尝试了一个 for 循环,但我觉得这不能准确工作:

  for row in complete:

request = service.conversion().update(
    body=
    {
        'conversion' : [{
            'clickId' : complete['click_id'],
            'conversionId' : complete['conv_id'],
            'conversionTimestamp' : complete['timestamp'],
            'segmentationType' : complete['seg_type'],
            'type': complete['type'],
            'revenueMicros': complete['order_pro'],
            'quantityMillis': complete['quant_mic'],
          }]
    }
)
print(body)
# request.execute()

我也尝试过用iterrows()查找,但是在测试时,我无法判断这是否在保持行结构。

使用数据帧中的列值填充循环(一次一行(的正确方法是什么?

您可以使用

df.apply(func, axis=1)来构建查询,然后执行它们。

在使用

数据帧时,我一直更喜欢这种方法 - 我觉得遍历行是一件非常非熊猫的事情...... 但我实际上不知道为什么我会有这种感觉。 :)

例如

def build_request(row):
    return {
        'conversion' : [{
            'clickId' : row['click_id'],
            'conversionId' : row['conv_id'],
            'conversionTimestamp' : row['timestamp'],
            'segmentationType' : row['seg_type'],
            'type': row['type'],
            'revenueMicros': row['order_pro'],
            'quantityMillis': row['quant_mic'],
          }]
    }
request_bodies = complete.apply(build_request, axis=1).tolist()

然后只需遍历request_bodies

你需要用

你的row替换complete并使用iterrows((:

for row in complete.iterrows():
    request = service.conversion().update(
      body=
    {
        'conversion' : [{
            'clickId' : row['click_id'],
            'conversionId' : row['conv_id'],
            'conversionTimestamp' : row['timestamp'],
            'segmentationType' :row['seg_type'],
            'type': row['type'],
            'revenueMicros': row['order_pro'],
            'quantityMillis': row['quant_mic'],
          }]
    })    
    print(body)

最新更新