亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在熊貓數據框中將“否”和“是”轉換為0和1

在熊貓數據框中將“否”和“是”轉換為0和1

精慕HU 2021-05-11 09:33:49
我想轉換包含整數以及'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貢獻1998條經驗 獲得超6個贊

您也可以使用replace

df.edjefe.replace(to_replace=['no', 'yes'], value=[0, 1])


查看完整回答
反對 回復 2021-05-18
?
牛魔王的故事

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'])


查看完整回答
反對 回復 2021-05-18
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

只需使用dict-like即可to_replace

df['edjefe'].replace({'no': 0, 'yes': 1})


查看完整回答
反對 回復 2021-05-18
  • 3 回答
  • 0 關注
  • 278 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號