我有一个数据帧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)