我想轉換包含整數以及'yes'和'no'值的'edjefe'列的數據。我的問題是我只想將“是”和“否”映射到1和0,并保持int值不變,所以我寫了這段代碼def foo(x): if x == 'no': return 0 elif x == 'yes': return 1 else: return x和 df1.edjefe.map(lambda x : foo(x))但是我遇到了一個錯誤,RecursionError: maximum recursion depth exceeded while calling a Python object
3 回答

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
您可以將其pd.Series.map與字典映射一起使用pd.Series.fillna:
d = {'no': 0, 'yes': 1}
df1['edjefe'] = df1['edjefe'].map(d).fillna(df1['edjefe'])
您可能會發現它比效率更高pd.Series.replace。
有關更多詳細信息,請參見通過字典有效替換熊貓系列中的值。
如果您的系列中有可變對象,這將失敗,因為字典鍵必須是可哈希的。在這種情況下,您可以轉換為字符串:
df1['edjefe'] = df1['edjefe'].astype(str).map(d).fillna(df1['edjefe'])
添加回答
舉報
0/150
提交
取消