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

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

無需循環替換 Pandas 列中的多個值

無需循環替換 Pandas 列中的多個值

RISEBY 2021-06-04 18:32:44
我有 Pandas 數據框,想在 df 的特定列上替換很多值。如何在沒有循環的情況下實現下面的代碼?for i in range(len(data.loc[:, 'CityID'])):    if data.loc[:, 'CityID'][i] == 1:        data.loc[:, 'CityID'][i] = 1    elif data.loc[:, 'CityID'][i] in (2, 3, 4, 21):        data.loc[:, 'CityID'][i] = 2    elif data.loc[:, 'CityID'][i] in (33, 34):        data.loc[:, 'CityID'][i] = 4    else:        data.loc[:, 'CityID'][i] = 3
查看完整描述

2 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

您可以使用字典pd.Series.map

d = {1: 1, 2: 2, 3: 2, 4: 2, 21: 2, 33: 4, 34: 4}
data['CityID'] = data['CityID'].map(d).fillna(3)

如果字典構建感覺費力,可以使用拆包:

d = {1: 1, **dict.fromkeys((2, 3, 4, 21), 2), **dict.fromkeys((33, 34), 4}


查看完整回答
反對 回復 2021-06-09
  • 2 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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