小能豆

替换 pandas DataFrame 中的列值

py

正在尝试替换数据框中某一列的值。列 (‘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),但不明白为什么什么都没有发生。


阅读 19

收藏
2024-09-20

共1个答案

小能豆

如果我理解正确的话,你想要的是这样的:

w['female'] = w['female'].map({'female': 1, 'male': 0})

(在这里,我将值转换为数字,而不是包含数字的字符串。如果您确实愿意,您可以将它们转换为"1""0",但我不确定您为什么要这样做。)

您的代码不起作用的原因是,['female']在列('female'您的中的第二列w['female']['female'])上使用并不意味着“选择值为‘女性’的行”。这意味着选择索引为女性’的行,而您的 DataFrame 中可能没有任何行。

2024-09-20