2015-11-06 55 views
2

如果數值爲varlist,如何替換數據表中的值data以及filllist中的信息?如果在列表中替換pandas數據表中的值

import pandas as pd 
data = pd.DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 10]}) 
varlist = (5,7,9,10) 
fillist = ('a', 'b', 'c', 'd') 
data[data.isin(varlist)==True] = 'is in varlist!' 

返回數據:

A    B 
0 is in varlist! 1 
1 6    2 
2 3    3 
3 4    is in varlist! 

但我想:

A    B 
0 a    1 
1 6    2 
2 3    3 
3 4    d 

回答

3

使用數據框的replace方法。

replace_map = dict(zip(varlist, fillist)) 
data.replace(replace_map) 

這給

A B 
0 a 1 
1 6 2 
2 3 3 
3 4 d 

的文檔是在這裏如果你想以不同的方式使用它: replace method documentation

+1

感謝您的快速反應,它的工作原理和使用字典而不是兩個清單更優雅 – API