首页 > 解决方案 > 通过循环在数据框中添加列并根据另一列中的内容进行填充

问题描述

我有以下数据框(New_Data),我想根据“商人”列的内容添加一个新列。例如,如果“商家”包含“AMZ”或“AMZN”,我希望该列返回“亚马逊”,如果“商家”包含“PRIME”,我希望该列返回“视频”,依此类推,直到最后一行。我想通过一个循环来做到这一点。

我尝试了以下创建列的方法,但我不知道如何将循环与内容 if-function 结合起来:

merchantlength=len(New_Data[['Merchant']])
merchantlength
i=0
for i in range(merchantlength):
    df['newcolumn']="1"

New_Data = pd.concat([ df], axis=1) 
New_Data

数据框

标签: pythondataframeloopsif-statement

解决方案


因此,您正在尝试根据“merchant”列的值在 new_column 中添加一些数据,因此请尝试执行以下操作:

values = []    
for i in df['merchant']:
        if i=='AMZ':
            values.append('Amazon')
        elif i == 'prime':
             values.append('video')

添加每个可能的类别值后,只需将此列表附加为具有某些名称的新列

df['new_column'] = values

推荐阅读