我有这个数据框
a b c
0 Out A M
1 Out A F
2 IN no F
3 Out no F
4 Out no F
... ... ... ...
751 IN no F
752 IN no F
753 IN no M
754 IN no F
755 Out A M
我想使用将值替换为其他值df.apply()
。但是失败了。这是我的方法
def replace_values(row):
if row == "TOH":
return "No"
elif row == "n":
return "No"
elif row == "Out":
return "No"
elif row == "out":
return "No"
elif row == "OUT":
return "No"
elif row == "TIH":
return "Yes"
elif row == "m":
return "Yes"
elif row == "A":
return "Yes"
elif row == "IN":
return "Yes"
elif row == "M":
return "Male"
elif row == "F":
return "Female"
else:
return np.nan
df = df.apply(replace_values)
不幸的是,这给了我这个错误,我无法弄清楚出了什么问题
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
为什么apply
呢 您可以replace
在一个值列表中包含多个值。您还可以用多个值替换列表中的多个值(如果列表的长度与第三次替换中的相同):
df = (df.replace(['TOH','n','Out','out','OUT','no'], 'No')
.replace(['TIH','m','A','IN'], 'Yes')
.replace(['M','F'], ['Male', 'Female']))
df
Out[1]:
a b c
0 No Yes Male
1 No Yes Female
2 Yes No Female
3 No No Female
4 No No Female
... ... ...
751 Yes No Female
752 Yes No Female
753 Yes No Male
754 Yes No Female
755 No Yes Male
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句