Python 如何使用dataframe迭代和修改行值
我想迭代并修改列“B”下的值,该列有重复的值 例如,如果我的数据帧是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,那么我
A B
1 null,null
2 null
3 null,null,null
4 null,apples
5 null,apples,null
6 null,apples,apples
现在我想修改它,以便根据B中的列值在数据框中创建一个新的列C。它将执行以下操作:
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