Python 如何使用VLOOKUP在Pandas中的新列中添加值?
我正在从事一个分析亚马逊营销活动数据集的项目。这些运动有等级制度: “Camapigns”包括 “广告组”包括 “关键词” 虽然我可以看到所有记录类型(活动、广告组和关键字)的性能值,但“出价”的更改只能在记录类型关键字上进行。实际的活动有17000行和几个不同的活动等,但是,我在这里创建了一个示例版本:Python 如何使用VLOOKUP在Pandas中的新列中添加值?,python,python-3.x,pandas,performance,vlookup,Python,Python 3.x,Pandas,Performance,Vlookup,我正在从事一个分析亚马逊营销活动数据集的项目。这些运动有等级制度: “Camapigns”包括 “广告组”包括 “关键词” 虽然我可以看到所有记录类型(活动、广告组和关键字)的性能值,但“出价”的更改只能在记录类型关键字上进行。实际的活动有17000行和几个不同的活动等,但是,我在这里创建了一个示例版本: 将熊猫作为pd导入 d={'Record Type':['Campaign'、'AdGroup'、'Keyword'、'Keyword'、'Keyword'], ‘活动’:[‘测试活动’、‘测
将熊猫作为pd导入
d={'Record Type':['Campaign'、'AdGroup'、'Keyword'、'Keyword'、'Keyword'],
‘活动’:[‘测试活动’、‘测试活动’、‘测试活动’、‘测试活动’、‘测试活动’、‘测试活动’],
“AdGroup”:[“”、'AdGroup_A'、'AdGroup_A'、'AdGroup_A'、'AdGroup_A'],
'关键字':['','Keyword_A','Keyword_B','Keyword_C'],
‘出价’:['NA','NA',1,1,1],
“性能”:[0.3'、'0.9',0.6,1.1,1.3]}
df=pd.DataFrame(数据=d)
打印(df)
我希望该计划做什么:
1) 检查“记录类型”AdGroup的性能。如果性能有特定条件(例如,如果性能<1),则应更改“记录类型”关键字的出价(例如+10%)
我的想法是:
将熊猫作为pd导入
d={'Record_Type':['Campaign','AdGroup','Keyword','Keyword','Keyword'],'Campaign':['Test_Campaign','Test_Campaign',
‘测试活动’、‘测试活动’、‘测试活动’、‘广告组’:[“”、‘广告组A’、‘广告组A’、‘广告组A’、‘广告组A’、‘广告组A’、‘广告组A’]
“,”关键字“:[”,”关键字“,”关键字“,”关键字“,”关键字“,”关键字“,”关键字“,”投标“:[”不适用“,”不适用“,”1,1,1],”性能“:[0.3,0.9,0.6,1.1,1.3])
df=pd.DataFrame(数据=d)
df['Action']=1
df['Help']=df['Record_Type']+df['Campaign']
打印(df)
我可能会使用apply lambda函数。
i、 e
df[“操作”]=df.apply(如果r[“记录类型”]=“AdGroup”和r[“性能”]<1,则λr:1.1,否则r[“操作”],轴=1)
您还可以将iloc与条件一起使用。我可能会使用apply lambda函数。 i、 e
df[“操作”]=df.apply(如果r[“记录类型”]=“AdGroup”和r[“性能”]<1,则λr:1.1,否则r[“操作”],轴=1)
您也可以在有条件的情况下使用iloc。谢谢您的帮助,但现在它不是问题的解决方案。因为:如果一个广告组的性能值小于1,我想更改这个广告组中每个关键字的出价。迭代必须分为两个步骤:1)检查AdGroup级别的性能,如果需要更改关键字的出价值,则保存信息。保存的数据可以是“活动”+“广告组”和动作的数据集。2) 在第二步中,需要检查所有“Record_Type”关键字。如果关键字的“活动”+“广告组”在之前的列表中,则必须在关键字级别执行操作。例如,在本例中,“AdGroup_A”的性能为0.9。我们需要保存信息“Test_CampaignAdGroup_A”和“Action”值“1.1”。在第二步中,我们需要检查所有“记录类型”关键字。对于每个关键字,还将构建“活动”+“广告组”的组合。现在,它必须是在AdGroup的相同数据上的VLOOKUP,如果有一个操作,那么该操作需要与关键字的出价相乘。在这种情况下,所有关键字必须与1.1相乘。感谢您的帮助,但现在它不是问题的解决方案。因为:如果一个广告组的性能值小于1,我想更改这个广告组中每个关键字的出价。迭代必须分为两个步骤:1)检查AdGroup级别的性能,如果需要更改关键字的出价值,则保存信息。保存的数据可以是“活动”+“广告组”和动作的数据集。2) 在第二步中,需要检查所有“Record_Type”关键字。如果关键字的“活动”+“广告组”在之前的列表中,则必须在关键字级别执行操作。例如,在本例中,“AdGroup_A”的性能为0.9。我们需要保存信息“Test_CampaignAdGroup_A”和“Action”值“1.1”。在第二步中,我们需要检查所有“记录类型”关键字。对于每个关键字,还将构建“活动”+“广告组”的组合。现在,它必须是在AdGroup的相同数据上的VLOOKUP,如果有一个操作,那么该操作需要与关键字的出价相乘。在这种情况下,所有关键字必须乘以1.1。
df["Action"] = df.apply(lambda r: 1.1 if r["Record_Type"] == "AdGroup" and r["Performance"] < 1 else r["Action"], axis=1)