簡體   English   中英

使用python pandas在數據框中使用多個字典重新映射多個列值

[英]remapping multiple column values with multiple dictionary in dataframe using python pandas

我有以下數據幀格式

 name,state,country a,1,67 b,2,52

我有以下州代碼和國家代碼映射字典

 state_map = { 1:'tn', 2:'kerala' } country_map = { 67: 'usa', 52: 'india'
我已經使用 data.replace({'state':state_map,'country':'country_map'}) 如果我們提供一列映射但不適用於多個映射字典,它的工作原理

如果給出一個 dict 來替換,則從文檔中

  • 嵌套字典,例如 {'a': {'b': nan}},讀作如下:在列 'a' 中查找值 'b' 並將其替換為 nan。 您也可以嵌套正則表達式。 請注意,列名(嵌套字典中的頂級字典鍵)不能是正則表達式。

因此,對於您的情況,您的 dict 看起來像:

r_map = {'state':{'1':'tn', '2':'kerala'},'country':{'67':'usa', '52':'india'}}

像這樣使用它:

df.replace(r_map)

上面的解決方案需要很多時間,因此使用下面的代碼來獲得更好的性能(注意 fillna 用於在找不到匹配時填充默認值):-

df['state'].map(state_map).fillna(0)
df['country'].map(country_map).fillna(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM