我有三列试图更新其中的值。逻辑是:如果该列中的特定行为空白,我想将其改为n
而不是None
。如果其中有一个值,那么我想更改该值以说y
。下面是一个示例:
Current data:
barcode dash_1 dash_2 dash_3
ABC123 ABC123 ABC123 None
ABC124 ABC124 ABC124 ABC124
ABC125 None ABC125 ABC125
ABC126 ABC126 None None
Desired output:
barcode dash_1 dash_2 dash_3
ABC123 y y n
ABC124 y y y
ABC125 n y y
ABC126 n n n
我一直在尝试做与下面的代码类似的事情,但是我得到的消息str
对象没有attribute isnull
。有什么想法我做错了吗?谢谢!
for idx, row in barcodes2.iterrows():
for col in ['dash_1','dash_2','dash_3']:
if row[col].isnull():
row[col] == 'n'
else:
row[col] == 'y'
您可以使用df.notnull()
和设置所有值df.isnull()
:
df[df.notnull()] = 'y'
df[df.isnull()] = 'n'
例:
>>> df
barcode dash_1 dash_2 dash_3
0 ABC123 ABC123 ABC123 None
1 ABC124 ABC124 ABC124 ABC124
2 ABC125 None ABC125 ABC125
3 ABC126 ABC126 None None
现在:
>>> df[df.notnull()] = 'y'
>>> df[df.isnull()] = 'n'
>>> df
barcode dash_1 dash_2 dash_3
0 y y y n
1 y y y y
2 y n y y
3 y y n n
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句