如何在与列表匹配的系列中重新分配值

时间:2019-08-27 19:39:45

标签: python pandas

我有一个带有各种名称的系列,需要重命名。列表中包含需要更改的值。

change_list = ['b', 'c']
new_name = 'x'

df = pd.DataFrame([
    {'sp': 'a'},
    {'sp': 'b'},
    {'sp': 'c'},
    {'sp': 'b'},
    {'sp': 'c'}])

df[df['sp'].isin(change_list)]['sp'] = new_name

结果应该是为new_name分配给与列表匹配的每个“ sp”值的数据框。

3 个答案:

答案 0 :(得分:0)

只需删除['sp']:)

change_list = ['b', 'c']
new_name = 'x'

df = pd.DataFrame([
    {'sp': 'a'},
    {'sp': 'b'},
    {'sp': 'c'},
    {'sp': 'b'},
    {'sp': 'c'}])

df[df['sp'].isin(change_list)] = new_name

答案 1 :(得分:0)

change_list = ['b', 'c']
new_name = 'x'

df = pd.DataFrame([
    {'sp': 'a'},
    {'sp': 'b'},
    {'sp': 'c'},
    {'sp': 'b'},
    {'sp': 'c'}])

df.loc[df.sp.isin(change_list), :] = new_name

答案 2 :(得分:0)

使用df.loc(末尾没有['sp']

df.loc[df['sp'].isin(change_list)] = new_name