2015-11-06 56 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