我有一个带有各种名称的系列,需要重命名。列表中包含需要更改的值。
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”值的数据框。
答案 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