我正在尝试修改一些列,使所有的yes和no变为1和0:
df['Outbreak Associated', 'FSA'] = df['Outbreak Associated', 'FSA'].map({'yes': '1', 'no': '0'})
一次执行一次即可,但是两次或更多次却给我一个错误。我想我缺少一些简单的东西,但我想不出它是什么。
KeyError: ('Outbreak Associated', 'FSA')
有什么想法吗?
您可以使用replace
,但如果没有匹配项获得原始值,则不能NaN
这样map
:
cols = ['Outbreak Associated', 'FSA']
df[cols] = df[cols].replace({'yes': '1', 'no': '0'})
解决方案Series.map
-您可以DataFrame.apply
使用lambda函数来循环每一列:
df[cols] = df[cols].apply(lambda x: x.map({'yes': '1', 'no': '0'}))
或使用DataFrame.stack
和Series.unstack
:
df[cols] = df[cols].stack().map({'yes': '1', 'no': '0'}).unstack()
或map
分别用于每列;):
d = {'yes': '1', 'no': '0'}
df['Outbreak Associated'] = df['Outbreak Associated'].map(d)
df['FSA'] = df['FSA'].map(d)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句