在 Python 中将年份转换为 12/31/xxxx 格式

Posted

技术标签:

【中文标题】在 Python 中将年份转换为 12/31/xxxx 格式【英文标题】:Converting Year into 12/31/xxxx Format in Python 【发布时间】: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 中执行此操作。

【问题讨论】:

【参考方案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))

【讨论】:

效果很好。这与我的想法一致,但不完全确定该怎么做。 很乐意提供帮助,我发现自己经常访问 pandas 的文档。 pandas.pydata.org/pandas-docs/stable/10min.html

以上是关于在 Python 中将年份转换为 12/31/xxxx 格式的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中将十进制转换为二进制年份

如何在 Python 中将日期转换为季度?

仅在 Pandas 中将日期时间转换为月份和年份 [重复]

如何在数据工作室的 bigquery 中将年份整数解析为日期?

在python中将日期时间拆分为年和月列

将 11/2/1998 转换为 110298 [重复]