根据其他单元格条件迭代和更新单元格

时间:2019-04-13 12:04:54

标签: python pandas

我无法弄清楚如何逐行迭代数据帧并根据其他单元格的条件更新单元格值。 如果在一个单元格中找到了部分字符串,并且如果另一个单元格同时具有特定值,那么我应该为该单元格添加特定值

也尝试过:

for i, row in df3.iterrows():
    codmarime = ''
    if df3['20755' in df3['ITEM CODE'][i]] and df3['24' in df3['TG'][i]]: 
       codmarime= '002'
       df3['SKU'][i] = '20'+str(df3['ITEM CODE'][i])+str(df3['COLOR CODE'][i])+codmarime


for i, row in df3.iterrows():
    codmarime = '' 
    if df3['ITEM CODE'].str.contains("20755") and df3['TG'].str.contains("24"): 
       codmarime= '002'
       df3['SKU'][i] = '20'+str(df3['ITEM CODE'][i])+str(df3['COLOR CODE'][i])+codmarime
    elif df3['ITEM CODE'].str.contains("20755") and df3['TG'].str.contains("25"): 
       codmarime= '003'
       df3['SKU'][i] = '20'+str(df3['ITEM CODE'][i])+str(df3['COLOR CODE'][i])+codmarime

输出

> ValueError    Traceback (most recent call last)
> 
> ----> 6     if df3['ITEM CODE'].str.contains("20755") and df3['TG'].str.contains("24"):

1 个答案:

答案 0 :(得分:1)

您的代码包含例如for i, row in df3.iterrows():循环。 在此循环内row指向当前行。

因此而不是例如df3['SKU'][i]您应该使用row['SKU']甚至是row.SKU

对当前列中的其他读写情况采取类似方法 行。