【问题标题】:Rectify incomplete year - Python纠正不完整的年份 - Python
【发布时间】:2020-11-01 13:20:48
【问题描述】:

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

['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 年等 是否可以在不进行硬编码替换的情况下用正确的年份替换这些值?

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

【问题讨论】:

  • 取决于有效年份的定义和未完成程度。
  • 没错,假设 17 可能是 1917 年或 2017 年。我们可以保留 2000-2099 的日期范围

标签: python pandas dataframe date


【解决方案1】:
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']

【讨论】:

    猜你喜欢
    • 2016-05-22
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2020-06-17
    • 2018-06-18
    • 2020-06-04
    • 1970-01-01
    相关资源
    最近更新 更多