我有以下代码:
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 :(得分:1)
让我按Age
将string
列转换为dtype
,然后将string
替换为另一个:{/ p>
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