我想迭代和修改列“ 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。它将执行以下操作:
所需的输出-
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
答案 0 :(得分:3)
尝试
df['C'] = (df.B.str.split(',',expand=True) # split the string and put them as columns
.replace('null',np.nan) # replace all the null with nan values
.bfill(axis=1)[0] # fill the nan to the left and choose the first column
.fillna('null') # replace the nan values with string 'null'
)
答案 1 :(得分:2)
使用get_dummies
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