第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 pandas .map 更改值

使用 pandas .map 更改值

慕標(biāo)琳琳 2021-09-11 16:06:48
我正在嘗試使用 map 函數(shù)更改數(shù)據(jù)中的字符串做數(shù)值。這是數(shù)據(jù):    label   sms_message0   ham     Go until jurong point, crazy.. Available only ...1   ham     Ok lar... Joking wif u oni...2   spam    Free entry in 2 a wkly comp to win FA Cup fina...3   ham     U dun say so early hor... U c already then say...4   ham     Nah I don't think he goes to usf, he lives aro...我正在嘗試使用以下方法將“垃圾郵件”更改為 1,將“火腿”更改為 0:df['label'] = df.label.map({'ham':0, 'spam':1})但結(jié)果是:    label   sms_message0   NaN     Go until jurong point, crazy.. Available only ...1   NaN     Ok lar... Joking wif u oni...2   NaN     Free entry in 2 a wkly comp to win FA Cup fina...3   NaN     U dun say so early hor... U c already then say...4   NaN     Nah I don't think he goes to usf, he lives aro...任何人都可以識別問題嗎?
查看完整描述

2 回答

?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

你是對的,我認(rèn)為你執(zhí)行了兩次相同的語句(1 后 1)。在 Python 交互式終端上執(zhí)行的以下語句闡明了這一點(diǎn)。


注意:如果你傳遞字典,map() 將替換 Series 中的所有值,NaN 如果它與字典的鍵不匹配(我認(rèn)為,你也做了同樣的事情,即執(zhí)行兩次語句)。檢查熊貓地圖(),應(yīng)用()。


Pandas 文檔說明:當(dāng)arg是字典時(shí),系列中不在字典中的值(作為鍵)將轉(zhuǎn)換為NaN。


>>> import pandas as pd

>>>

>>> d = {

...     "label": ["ham", "ham", "spam", "ham", "ham"],

...     "sms_messsage": [

...     "Go until jurong point, crazy.. Available only ...",

...     "Ok lar... Joking wif u oni...",

...     "Free entry in 2 a wkly comp to win FA Cup fina...",

...     "U dun say so early hor... U c already then say...",

...     "Nah I don't think he goes to usf, he lives aro..."

...    ]

... }

>>>

>>> df = pd.DataFrame(d)

>>> df

  label                                       sms_messsage

0   ham  Go until jurong point, crazy.. Available only ...

1   ham                      Ok lar... Joking wif u oni...

2  spam  Free entry in 2 a wkly comp to win FA Cup fina...

3   ham  U dun say so early hor... U c already then say...

4   ham  Nah I don't think he goes to usf, he lives aro...

>>>

>>> df['label'] = df.label.map({'ham':0, 'spam':1})

>>> df

   label                                       sms_messsage

0      0  Go until jurong point, crazy.. Available only ...

1      0                      Ok lar... Joking wif u oni...

2      1  Free entry in 2 a wkly comp to win FA Cup fina...

3      0  U dun say so early hor... U c already then say...

4      0  Nah I don't think he goes to usf, he lives aro...

>>>

>>> df['label'] = df.label.map({'ham':0, 'spam':1})

>>> df

   label                                       sms_messsage

0    NaN  Go until jurong point, crazy.. Available only ...

1    NaN                      Ok lar... Joking wif u oni...

2    NaN  Free entry in 2 a wkly comp to win FA Cup fina...

3    NaN  U dun say so early hor... U c already then say...

4    NaN  Nah I don't think he goes to usf, he lives aro...

>>>

獲得相同結(jié)果的其他方法

>>> import pandas as pd

>>>

>>> d = {

...     "label": ['spam', 'ham', 'ham', 'ham', 'spam'],

...     "sms_message": ["M1", "M2", "M3", "M4", "M5"]

... }

>>>

>>> df = pd.DataFrame(d)

>>> df

  label sms_message

0  spam          M1

1   ham          M2

2   ham          M3

3   ham          M4

4  spam          M5

>>>

第一個(gè)方法-使用map()與dictionary參數(shù)


>>> new_values = {'spam': 1, 'ham': 0}

>>>

>>> df

  label sms_message

0  spam          M1

1   ham          M2

2   ham          M3

3   ham          M4

4  spam          M5

>>>

>>> df.label = df.label.map(new_values)

>>> df

   label sms_message

0      1          M1

1      0          M2

2      0          M3

3      0          M4

4      1          M5

>>>

第二個(gè)方法-使用map()與function參數(shù)


>>> df.label = df.label.map(lambda v: 0 if v == 'ham' else 1)

>>> df

   label sms_message

0      1          M1

1      0          M2

2      0          M3

3      0          M4

4      1          M5

>>>

第三個(gè)方法-使用apply()與function參數(shù)


>>> df.label = df.label.apply(lambda v: 0 if v == "ham" else 1)

>>>

>>> df

   label sms_message

0      1          M1

1      0          M2

2      0          M3

3      0          M4

4      1          M5

>>>

謝謝你。


查看完整回答
反對 回復(fù) 2021-09-11
  • 2 回答
  • 0 關(guān)注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號