几年到几十年
Years to Decades
我有一个名为 'va' 的 df,其中包含一个包含年份值的列 'contest_id'。例如,年份列中的记录将显示 73hod34,年份为 1973。我想创建一个包含第一个字符的列,以便我可以按十年而不是年份对数据进行编码。
此外,我还有一个 'years' 列 ('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
重申一下,我想在第三列添加十年,即使它只是一位数字(比如 7 代表 1970 年代)
预先感谢您的协助!
既然你有年份的专栏,我认为不需要对 contest_id 的字符串进行子集化,但这里有两个创建十年的专栏的解决方案。
由于您需要用一些 int 值表示年份,因此您可以将其转换为类别(因子):
这将产生以整个年份名称作为因素的列。
va['decade'] = va['year'].astype('category')
或者,尝试:
va['decade'] = (va['contest_id'].apply(lambda x: x[:2])).astype('category')
我有一个名为 'va' 的 df,其中包含一个包含年份值的列 'contest_id'。例如,年份列中的记录将显示 73hod34,年份为 1973。我想创建一个包含第一个字符的列,以便我可以按十年而不是年份对数据进行编码。
此外,我还有一个 'years' 列 ('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
重申一下,我想在第三列添加十年,即使它只是一位数字(比如 7 代表 1970 年代) 预先感谢您的协助!
既然你有年份的专栏,我认为不需要对 contest_id 的字符串进行子集化,但这里有两个创建十年的专栏的解决方案。
由于您需要用一些 int 值表示年份,因此您可以将其转换为类别(因子):
这将产生以整个年份名称作为因素的列。
va['decade'] = va['year'].astype('category')
或者,尝试:
va['decade'] = (va['contest_id'].apply(lambda x: x[:2])).astype('category')