【问题标题】:Converting Year into 12/31/xxxx Format in Python在 Python 中将年份转换为 12/31/xxxx 格式
【发布时间】:2018-08-03 02:09:37
【问题描述】:

我有一个存储在Pandas.DataFrame (column=df[0]) 中的年份列表,如下所示:

0      1939
1      1977
2      1965
3      1982
4      1997
5      1956

将这些日期转换为“xxxx”等于年份的12/31/xxxx 格式的最简单方法是什么?我需要将其转换为 Excel 的格式才能将数字识别为日期。

注意:我在 Excel 中使用查找和替换找到了一个快速破解方法,但我也想知道如何在 Python 中执行此操作。

【问题讨论】:

    标签: python excel pandas datetime


    【解决方案1】:

    使用

    In [1094]: pd.to_datetime(df.year, format='%Y') + pd.offsets.YearEnd(1)
    Out[1094]:
    0   1939-12-31
    1   1977-12-31
    2   1965-12-31
    3   1982-12-31
    4   1997-12-31
    5   1956-12-31
    Name: year, dtype: datetime64[ns]
    

    【讨论】:

      【解决方案2】:

      您可以使用.astype() 获取字符串并构造您的日期,例如:

      代码:

      '12/31/' + df[0].astype(str)
      

      测试代码:

      df = pd.DataFrame([1939, 1977, 1965, 1982, 1997, 1956])
      print(df)
      print('12/31/' + df[0].astype(str))
      

      结果:

            0
      0  1939
      1  1977
      2  1965
      3  1982
      4  1997
      5  1956
      
      0    12/31/1939
      1    12/31/1977
      2    12/31/1965
      3    12/31/1982
      4    12/31/1997
      5    12/31/1956
      Name: 0, dtype: object
      

      【讨论】:

      • 谢谢。我可能应该想到这一点,但还是有点新手。
      【解决方案3】:

      您应该能够使用类似的方法将数据转换为格式。日期将从年份开始并设置为 12/31/年

      date = '12/31/{0}'.format(date)
      

      在熊猫语境中

      df[0] = df[0].apply(lambda x: '12/31/{0}'.format(x))
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 2015-05-02
      • 2021-10-14
      • 2021-04-09
      • 2020-01-06
      • 2021-07-04
      • 2014-09-23
      相关资源
      最近更新 更多