在NumPy数组中格式化日期数据

4
我将非常感激您的建议。我有一个练习,内容如下所述:

第一列(索引0)包含年份值,以YYYY的格式表示为四位数字(2016,因为我们数据集中的所有旅行都是从2016年开始的)。使用赋值将这些值更改为YY格式(16),并存储在test_array ndarray中。

我使用以下代码来解决它:
test_array[:,0] = test_array[:,0]%100

但我相信一定有更普遍且更聪明的方法使用datetime或其他东西获得相同的结果。但我找不到它。我尝试了这段代码的不同变化,但我不知道哪里错了:

dt.datetime.strptime(str(test_array[:,0]), "%Y")
test_array[:,0] = dt.datetime.strftime("%y")

请问您能帮忙吗?

谢谢


1
如果您使用pandas进行数据框创建/加载,您可以简单地使用colname.year。然后,您可以进行操作以获取仅最后两个值。 - Jim Todd
1个回答

1
为了将年份从YYYY格式转换为YY格式,需要使用中间的datetime值进行操作,例如可以使用strftime函数来进行操作:
df.iloc[:, 0] = df.iloc[:, 0].apply(lambda x: pd.datetime(x, 1, 1).strftime('%y'))

在这里,为了获得所需的datetime值,我们需要3个参数:年、月和日期,其中我们有年份,其余的值默认为1。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接