正在尝试替换数据框中某一列的值。列 (‘female’) 仅包含值 ‘female’ 和 ‘male’。
我尝试了以下方法:
w['female']['female']='1' w['female']['male']='0'
但收到与以前的结果完全相同的副本。
我理想情况下希望获得一些类似于以下循环元素的输出。
if w['female'] =='female': w['female'] = '1'; else: w['female'] = '0';
我已经查看了 gotchas 文档(http://pandas.pydata.org/pandas-docs/stable/gotchas.html),但不明白为什么什么都没有发生。
如果我理解正确的话,你想要的是这样的:
w['female'] = w['female'].map({'female': 1, 'male': 0})
(在这里,我将值转换为数字,而不是包含数字的字符串。如果您确实愿意,您可以将它们转换为"1"和"0",但我不确定您为什么要这样做。)
"1"
"0"
您的代码不起作用的原因是,['female']在列('female'您的中的第二列w['female']['female'])上使用并不意味着“选择值为‘女性’的行”。这意味着选择索引为‘女性’的行,而您的 DataFrame 中可能没有任何行。
['female']
'female'
w['female']['female']