Python 如何使用dataframe迭代和修改行值

Python 如何使用dataframe迭代和修改行值,python,pandas,Python,Pandas,我想迭代并修改列“B”下的值,该列有重复的值 例如,如果我的数据帧是 A B 1 null,null 2 null 3 null,null,null 4 null,apples 5 null,apples,null 6 null,apples,apples 现在我想修改它,以便根据B中的列值在数据框中创建一个新的列C。它将执行以下操作: 将所有多个“null”替换为一个“null”值 如果出现了单词apples,那么我

我想迭代并修改列“B”下的值,该列有重复的值

例如,如果我的数据帧是

A   B    
1   null,null    
2   null    
3   null,null,null    
4   null,apples    
5   null,apples,null    
6   null,apples,apples
现在我想修改它,以便根据B中的列值在数据框中创建一个新的列C。它将执行以下操作:

  • 将所有多个“null”替换为一个“null”值
  • 如果出现了单词apples,那么我们在新列中存储“apples”,而不是null
  • 期望输出-

    A   B                  C
    
    1   null,null          null
    
    2   null               null
    
    3   null,null,null     null
    
    4   null,apples         apples
    
    5   null,apples,null    apples
    
    6   null,apples,apples  apples
    
    试一试


    使用
    get_假人

    s=df.B.str.get_dummies(',').drop('null',1)
    
    df['New']=s.dot(s.columns).replace('','null')
    df
    Out[143]: 
       A                   B     New
    0  1           null,null    null
    1  2                null    null
    2  3      null,null,null    null
    3  4         null,apples  apples
    4  5    null,apples,null  apples
    5  6  null,apples,apples  apples
    

    您的列中是否有
    null
    字符串或
    None
    “null”是字符串值+1,但我会将其定义/包装在单独的函数中。更容易理解,更容易测试。这个问题与数据帧没有多大关系。这是一个映射(据我所知),它将字符串(如
    null,apples,null
    映射到
    apples
    )。数据框只是用来保存原稿和图像。这是一个非常聪明的答案
    s=df.B.str.get_dummies(',').drop('null',1)
    
    df['New']=s.dot(s.columns).replace('','null')
    df
    Out[143]: 
       A                   B     New
    0  1           null,null    null
    1  2                null    null
    2  3      null,null,null    null
    3  4         null,apples  apples
    4  5    null,apples,null  apples
    5  6  null,apples,apples  apples