我有一个名为' va'有一列' contest_id'包含年份值。例如,年份列中的记录将显示73hod34,年份为1973年。我想创建一个第一个字符的列,以便我可以用数十年而不是几年来编码我的数据。
此外,我有一个'岁月'专栏(' 1973' == 1973)但由于某种原因,我无法将其从字符串转换为整数。如果有办法做到这一点或一些时间序列值,我可以改变它,那么也许这可能是一个修复?
以下代码返回了一个列,该列仅重复了' years':
的条目va['decade'] = va[['contest_id']].apply(lambda x: x[0], axis = 1)
也试过
va['decade'] = va[['contest_id']].apply(lambda x: x[:0], axis = 1)
根据要求提供一些数据:
Screenshot of my data from Excel
重申一下,我想在十年内添加第三栏,即使它只是一位数(如20世纪70年代的7位) 在此先感谢您的帮助!
答案 0 :(得分:1)
由于您有年份专栏,我不认为需要对contest_id字符串进行分组,但这里有两个解决方案来创建十年专栏。
由于您需要使用某个int值表示年份,因此您可以将其转换为类别(因子):
这将产生具有整年名称的列作为因子。
va['decade'] = va['year'].astype('category')
或者,尝试:
va['decade'] = (va['contest_id'].apply(lambda x: x[:2])).astype('category')