.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()具有完全相同的构造 - 在()中使用两个列表 - 在我的程序中更进一步,它完美地工作。但这不是,我不明白为什么它不起作用。
答
工作对我来说将列Age
到string
由dtype
然后替换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
是值的整数?如果字符串像'23842674135270370''''''23842674135270370''''''''''''''''''''''''''''''''' – jezrael
它工作在我身边 – Wen
@jezrael他们是整数 - 第一次犯的错误是,我有他们周围,它无法转换字符串/整数。 – jbachlombardo