.replace只替换第一个值

问题描述:

我有以下代码:.replace只替换第一个值

df_demo['Age'] = df_demo['Age'].replace([23842674135270370, 
23842674044440370, 23842674044420370, 23842674044430370], 
['18-24', '25-34', '35-44', '45+']) 

(这些数字是广告ID标签,和我想他们替换他们的目标年龄组)。

代码只读取第一个数字并将其替换(至18-24)。其余的数字不是阅读和替换。如果我翻转数字的顺序(比如将25-34配对移动到第一组),它将替换第一个配对,但不会替换其他配对。

我对.replace()具有完全相同的构造 - 在()中使用两个列表 - 在我的程序中更进一步,它完美地工作。但这不是,我不明白为什么它不起作用。

+0

是值的整数?如果字符串像'23842674135270370''''''23842674135270370''''''''''''''''''''''''''''''''' – jezrael

+0

它工作在我身边 – Wen

+0

@jezrael他们是整数 - 第一次犯的错误是,我有他们周围,它无法转换字符串/整数。 – jbachlombardo

工作对我来说将列Agestringdtype然后替换string S按另一个问题:

df_demo = pd.read_csv('demographics - Sheet1.csv', dtype={'Age':str}) 
print (df_demo.tail()) 

190 191 23842674135270370  Yes 
191 192 23842674135270370  Yes 
192 193 23842674044420370  Yes 
193 194 23842674135270370  Yes 
194 195 23842674044420370  Yes 

df_demo['Age'] = df_demo['Age'].replace(
['23842674135270370','23842674044440370','23842674044420370','23842674044430370'], 
['18-24', '25-34', '35-44', '45+']) 

print (df_demo.tail()) 
    Name Age Newsletter 
190 191 18-24  Yes 
191 192 18-24  Yes 
192 193 35-44  Yes 
193 194 18-24  Yes 
194 195 35-44  Yes 
+0

为我工作 - 谢谢! – jbachlombardo