多年到十年

时间:2015-11-22 02:01:52

标签: python pandas ipython

我有一个名为' 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位) 在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

由于您有年份专栏,我不认为需要对contest_id字符串进行分组,但这里有两个解决方案来创建十年专栏。
由于您需要使用某个int值表示年份,因此您可以将其转换为类别(因子): 这将产生具有整年名称的列作为因子。

va['decade'] = va['year'].astype('category')  

或者,尝试:

va['decade'] = (va['contest_id'].apply(lambda x: x[:2])).astype('category')