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

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

根據(jù)熊貓中的另一個值更改一個值

根據(jù)熊貓中的另一個值更改一個值

蝴蝶不菲 2019-12-17 14:36:35
我試圖將我的Stata代碼重新編程為Python,以提高速度,而我的方向是PANDAS。但是,我很難集中精力處理數(shù)據(jù)。假設我要遍歷列標題“ ID”中的所有值。如果該ID與特定數(shù)字匹配,那么我想更改兩個相應的值FirstName和LastName。在Stata中,它看起來像這樣:replace FirstName = "Matt" if ID==103replace LastName =  "Jones" if ID==103因此,這將替換FirstName中與Matt的ID == 103值相對應的所有值。在PANDAS中,我正在嘗試類似的方法df = read_csv("test.csv")for i in df['ID']:    if i ==103:          ...不知道從這里去哪里。有任何想法嗎?
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

您可以使用map,它可以映射字典或自定義函數(shù)中的值。


假設這是您的df:


    ID First_Name Last_Name

0  103          a         b

1  104          c         d

創(chuàng)建字典:


fnames = {103: "Matt", 104: "Mr"}

lnames = {103: "Jones", 104: "X"}

和地圖:


df['First_Name'] = df['ID'].map(fnames)

df['Last_Name'] = df['ID'].map(lnames)

結果將是:


    ID First_Name Last_Name

0  103       Matt     Jones

1  104         Mr         X

或使用自定義函數(shù):


names = {103: ("Matt", "Jones"), 104: ("Mr", "X")}

df['First_Name'] = df['ID'].map(lambda x: names[x][0])


查看完整回答
反對 回復 2019-12-17
?
達令說

TA貢獻1821條經驗 獲得超6個贊

這個問題可能仍然經常被探訪,因此值得為卡西斯先生的回答提供補充。可以對dict內置類進行子類化,以便為“缺失”鍵返回默認值。此機制對熊貓有效。但請參見下文。


這樣就可以避免關鍵錯誤。


>>> import pandas as pd

>>> data = { 'ID': [ 101, 201, 301, 401 ] }

>>> df = pd.DataFrame(data)

>>> class SurnameMap(dict):

...     def __missing__(self, key):

...         return ''

...     

>>> surnamemap = SurnameMap()

>>> surnamemap[101] = 'Mohanty'

>>> surnamemap[301] = 'Drake'

>>> df['Surname'] = df['ID'].apply(lambda x: surnamemap[x])

>>> df

    ID  Surname

0  101  Mohanty

1  201         

2  301    Drake

3  401         

可以通過以下方式更簡單地完成同一件事。對于getdict對象的方法使用'default'參數(shù),就不必對dict進行子類化。


>>> import pandas as pd

>>> data = { 'ID': [ 101, 201, 301, 401 ] }

>>> df = pd.DataFrame(data)

>>> surnamemap = {}

>>> surnamemap[101] = 'Mohanty'

>>> surnamemap[301] = 'Drake'

>>> df['Surname'] = df['ID'].apply(lambda x: surnamemap.get(x, ''))

>>> df

    ID  Surname

0  101  Mohanty

1  201         

2  301    Drake

3  401         


查看完整回答
反對 回復 2019-12-17
  • 3 回答
  • 0 關注
  • 330 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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