如果在列表中,则替换pandas datatable中的值

时间:2015-11-06 12:36:20

标签: python pandas

如果某个值在data中,我怎样才能将数据格filllist中的值替换为varlist中的信息?

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

1 个答案:

答案 0 :(得分: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