python - 纠正不完整的年份 - Python

标签 python pandas dataframe date

我在数据框中有一个年份列,它具有独特的值,例如

['2017', '2018', '2019', '2015', '2016', '2011', '2010', '2014',
 '215', '2013', nan, '216', '217', '2008', '218', '219',
 '2012', '211', '2002', '214', '17']

有些年份写得不完整。例如,217代表2017年,17代表2017年等等 是否可以在不进行硬编码替换的情况下用正确的年份替换这些值?

我自己也搜索过一些解决方案,但没有找到任何有用的东西。

最佳答案

import numpy as np

years = ['2017', '2018', '2019', '2015', '2016', '2011', '2010', '2014',
 '215', '2013', np.nan, '216', '217', '2008', '218', '219',
 '2012', '211', '2002', '214', '17']

corrected_years = ["20" + year[-2:] if year is not np.nan else year for year in years]

输出:

['2017',
 '2018',
 '2019',
 '2015',
 '2016',
 '2011',
 '2010',
 '2014',
 '2015',
 '2013',
 nan,
 '2016',
 '2017',
 '2008',
 '2018',
 '2019',
 '2012',
 '2011',
 '2002',
 '2014',
 '2017']

关于python - 纠正不完整的年份 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64632362/

相关文章:

python - 如何更改子类python中的父属性

Python Pandas 不读取 csv 文件的第一行

python - 隐藏 xticks 标签每第 n 个标签或 Pandas 绘图上的值/使 x 轴可读

python - 遍历 Pandas 数据框的行

python - 根据时间条件获取每个组的最大值

python - 将列值分配给数据框中的变量

python - 如何获取另一个列表中列表项的索引?

python - 查找具有重复值的元组列表中的最小行

python - 如何将 numpy uint8 转换为 Python 中的默认 int 类型?

python - 基于联合条件的 Pandas 切片行