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

时间:2018-02-23 03:37:15

标签: python excel pandas datetime

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

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

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

注意:我在Excel中使用find和replace发现了一个快速破解,但是想知道如何在Python中执行此操作。

3 个答案:

答案 0 :(得分:5)

使用

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]

答案 1 :(得分:3)

您可以使用.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

答案 2 :(得分:2)

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

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

在pandas上下文

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